Objective-c:如何存储大量数据(iOS RSS应用程序)

时间:2011-12-05 00:42:16

标签: objective-c ios core-data store

我目前正在开发iOS上的Google阅读器应用程序,我想知道存储所有以前下载的数据的最佳方式是什么(可能会有数千条新闻)?我听说过Core Data,是这样的吗?或者更容易存储XML或JSON文件并解析它?

谢谢

4 个答案:

答案 0 :(得分:3)

核心数据或直接使用sqlite。

答案 1 :(得分:2)

核心数据通常是处理大量数据的好方法,尤其是复杂的关系。

在这种特殊情况下,你可以站在巨人的肩膀上。 NetNewsWire是一款iOS RSS雷达(使用谷歌阅读器),它使用了Core Data一段时间并远离它。 NewNewsWire的当时作者非常友好地在http://inessential.com/2010/02/26/on_switching_away_from_core_data

中写下了原因

我认为这些都不会改变,所以除非你的RSS阅读器与NetNewsWire截然不同,否则如果它避免使用Core Data并使用sqlite(直接或通过某些框架,如FMDB),它会更快。我还打赌,如果您使用Core Data并且性能受到影响,您将“更快地推向市场”。

(现在你的RSS程序的焦点可能会非常不同,所以你可能永远不需要为10,000个项目或其他任何核心数据阻碍更多帮助的东西做同等的update newsItems set read = 1 where - - 如果是这样,一定要运行到核心数据)

注意:自从写完这个答案后,情况发生了一些变化。 iOS 8为绕过其中一些的批量运营商增加了一些支持,例如参见NSBatchUpdateRequest。我没有直接经验,你需要放弃iOS 7和之前的支持(或者编写代码两次,并且只适用于iOS 8+上的大型数据集)。关于使用“新”事物的所有警告也适用(“没有经过充分测试”,“没有那么多地方可以寻求帮助”),当然它可能是你的问题的完美契合,而Oooo Shiny!

答案 2 :(得分:1)

使用核心数据。它非常适合您的需求。查看文档并提供大量示例代码(您甚至可以在Xcode中启动一个新项目并选择核心数据选项,让它为您填充所有必需的核心数据代码。

答案 3 :(得分:1)

是的,你是对的。 除非您花时间学习一些SQLite,XML或JSON ...使用Core Data是迄今为止最好和最简单的实现方法。它由Apple为Apple应用程序和操作系统创建。在Core Data下的www.developer.apple.com上有非常好的文档和示例代码。 从这里开始: Core Data Programming Guide on developer.apple.com