Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 内容密集型iPhone应用程序的数据格式-Plist还是XML?_Ios_Iphone_Xml_Plist - Fatal编程技术网

Ios 内容密集型iPhone应用程序的数据格式-Plist还是XML?

Ios 内容密集型iPhone应用程序的数据格式-Plist还是XML?,ios,iphone,xml,plist,Ios,Iphone,Xml,Plist,我正在构建一个本质上是一本书的iPhone应用程序,它将与大量文本内容捆绑在一起 我考虑将数据绑定为XML,并在应用程序启动时加载,但XML将包含大量嵌套结构,解析起来有点麻烦 使用plist会更好吗?我关心的是内存使用情况,而plist完全加载到内存中——它们可以分块解析吗?plist是否有一个最大规模,以及它们的效率如何 我还不确定捆绑内容会有多大,但我可以想象它可能在500k到4MB之间。为什么不以HTML的形式发布内容?(可能分成章节或类似章节) 这样,您就可以通过WebView立即显示

我正在构建一个本质上是一本书的iPhone应用程序,它将与大量文本内容捆绑在一起

我考虑将数据绑定为XML,并在应用程序启动时加载,但XML将包含大量嵌套结构,解析起来有点麻烦

使用plist会更好吗?我关心的是内存使用情况,而plist完全加载到内存中——它们可以分块解析吗?plist是否有一个最大规模,以及它们的效率如何


我还不确定捆绑内容会有多大,但我可以想象它可能在500k到4MB之间。

为什么不以HTML的形式发布内容?(可能分成章节或类似章节)


这样,您就可以通过WebView立即显示它,而无需进行任何解析或重新格式化。

属性列表是从NSObject派生的任何内容的本机序列化格式。可变状态保存存在一些问题,但苹果公司更喜欢整体plist格式。NSData提供了一些解析方法,可以抽象出标记的细节。至于XML,您需要编写自己的解析器

有关详细信息,请参阅


应该注意,plist文件本身是严格的XML;在选择plist时,在服务器端,您应该能够解析plist XML,并将每两个节点视为键值对。

根据我的经验,plist更易于维护,而且从长远来看效果更好。我也有类似的情况,我编写了一个应用程序,它使用所有相同的API生成我的应用程序读取的数据文件,而无需额外设置。只要你熟悉可可豆,它就会触手可及

iPhone SDK中包含的属性列表编辑器应用程序甚至可以让人阅读。虽然我不推荐手工构建非常大的数据结构,但这就是为什么我提到了我是如何为此构建另一个应用程序的——生成数据的代码和使用数据的代码几乎有1:1的比较,它们非常相似。
PLIST编辑器在处理一个项目或编辑小媒体数据方面非常方便,而且它隐藏了底层XML。

< P>如果人类可读性是一个设计目标,你应该考虑JSON。这不是每个应用程序的正确答案,但值得考虑。开源json框架(here:)很棒,它提供了非常方便的方法,可以将json字符串作为NSString的一个类别编码和解码到对象。所以你可以说:

NSString *jsonString = ...// however you're loading the goods
NSDictionary *myData = [jsonString JSONValue];

…砰的一声,你正在使用本机对象。就我个人而言,这比阅读plist更容易。

应该提到-内容必须是人类可读的,因此sqllite等是不可能的。有趣的想法,肯定值得思考。谢谢你的评论。我知道plist文件是XML,我感兴趣的是使用普通XML是否有性能差异?