将XML数据存储在Core Data中

时间:2010-04-10 17:31:19

标签: iphone objective-c core-data

有没有简单的方法将XML数据存储到核心数据中?

目前,我的应用程序只是直接从XML文件中提取值,但是,这对于包含100多个条目的XML文件来说效率不高,因此将数据存储在Core Data中将是最佳选择。在应用程序打开时,会调用/下载/解析XML文件。

使用Core Data,XML数据将在3600秒左右下载,并刷新核心数据中的当前数据,以减少打开应用程序时的加载时间。

关于我如何做到这一点的任何想法?

审查了开发人员文档后,它看起来不太好吃。

1 个答案:

答案 0 :(得分:1)

我认为你的意思是你必须下载一个xml文件,解析它然后保存文件中编码的数据?您有几种保存此类数据的选项。

如果数据相对简单且静态,例如一个重复的项目列表,那么您可能只想使用NSArray,NSSet或NSDictionary(或一些嵌套组合),然后使用集合类writeToFile:方法将生成的集合作为plist写入磁盘。然后,当需要数据时,您只需使用initWithFile:方法之一。这个系统的缺点是你必须将整个文件读回内存才能使用它。该系统不适用于非常大的数据集。

如果数据很复杂,例如一堆独立但高度相关的数据块,中等大小,然后Core Data会更好。

当然,如果需要,您始终可以选择将下载的文件作为字符串直接写入磁盘。