我应该使用哪个商店:文档存储还是SQLite?

时间:2012-05-01 06:37:59

标签: iphone objective-c ios data-storage

我正在从API中提取文本帖子列表。每个帖子都有标题和说明。我需要在iPhone应用程序中保留所有这些内容。

我应该使用哪种存储空间?我应该使用文档存储还是应该使用CoreData SQLite存储?

4 个答案:

答案 0 :(得分:0)

如果要对它们执行查询,最好使用核心数据或sqlite。否则,我认为文档文件没问题。

答案 1 :(得分:0)

CoreData是一种在您的应用中保留数据的好方法。但请注意,在这种情况下,您需要清理太旧的数据,以避免在设备中使用过多的存储空间。此外,考虑到CoreData非常适合持久化对象关系,而在您的情况下,您可能不需要持久保存对象图,而只需要一个帖子数据列表,因此您不会受益于CoreData的查询功能。

但是如果你使用的是基于网络的API,你也可以利用API提供的数据缓存并使用iOS网络缓存机制。为简化起见,您可以利用MKNetworkKit这样的开源网络框架,这些框架将缓存文件系统中的缓存数据,并在它们到期后或在可自定义的时间之后(几天,几周,个月)。或者,如果您不想使用第三方工具,您仍然可以使用Apple提供的iOS NSURLCache对象。这种方法比核心数据简单得多:在这种情况下,您仍然可以从网络获取数据,如果已经缓存,则不会遵循网络路径,数据将直接从文件系统中获取。

答案 2 :(得分:0)

使用iCloud,文档更有意义,但@yibuyiqu是正确的,如果你想查询数据,数据库是最好的。

您可以将可搜索且最初可显示的数据放入数据库,并将其指向包含完整数据的文件(使用文件名的GUID)。这样,如果您使用iCloud,您的数据就可以导出了,因为它已经存在于文档中,并且是预期的。

另一个好处是搜索性能上升,数据库中的数据越少。因此,如果您要存储图像或其他繁重的数据,那么最好使用外部数据库。

答案 3 :(得分:0)

您可以使用UIManagedDocument来获取两者的好处。您也可以在以后添加iCloud同步。