为啥 XML 存储在 iOS 中不可用?

Posted

技术标签:

【中文标题】为啥 XML 存储在 iOS 中不可用?【英文标题】:Why is XML store not available in iOS?为什么 XML 存储在 iOS 中不可用? 【发布时间】:2011-01-16 11:52:57 【问题描述】:

来自核心数据编程指南:

iOS:XML 存储在 ios 上不可用。

为什么这个不可用?是因为缺少某些 XML 类,还是需要太多的处理能力或 RAM?

【问题讨论】:

【参考方案1】:

Apple 将是这方面的权威来源,所以我们只能猜测。

这可能是因为两个因素:XML 存储速度较慢(如 official documentation 中所述,主要是因为需要解析 XML 并且缺乏用于常见数据库操作的有效算法/数据结构)以及可能使用更多磁盘空间比 SQLite 存储(因为数据必须包含在标签中,而 XML 存储使用人类可读的数据表示)。

编辑: libxml2 在 iOS 上可用,因此 XML 解析功能(或缺乏)当然不是原因。

【讨论】:

“XML 存储使用人类可读的数据表示”并非总是如此。 Apple 可以将数据存储在包含二进制数据的任意 XML 结构中,而无需关心人类是否可以轻松读取它(相应的 MIME 类型将是 application/xml)。也就是说,我同意你的其他观点。 @BoltClock Apple 可以拥有,但 IIRC 他们没有。他们给出的拥有 XML 存储(在 Mac OS 上)的原因之一是该存储是人类可读的,因此对调试很有用。

以上是关于为啥 XML 存储在 iOS 中不可用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 Javascript 库在浏览器中可用,但在 PhoneGap 中不可用?

为啥 IndexedDB 在 node.js 中不可用? [关闭]

为啥“构建配置...”在带有 QT eclipse 插件的 Eclipse CDT 中不可用?

Lua - “系统”不可用:在 iOS 中不可用

为啥在测试类中设置的 spring.profiles.active 在实际测试类的环境属性中不可用?

为啥常见的 Erlang 应用程序(Common Test、Dialyzer、leex、yecc 等)在 `erl` shell 中不可用?