搜索核心数据与Plist

时间:2011-06-17 18:02:53

标签: iphone objective-c ios core-data plist

我正在搜索350个字典对象。将数据存储在Core Data或plist中进行搜索会更有效吗?

基本上,每个对象都是一个包含8个键值的字典。 350个对象在线存储在JSON提要中。我想在应用首次启动时下载Feed,然后将数据存储到核心数据或plist中。在应用程序中,有一个表默认有几个对象。然后,用户可以添加/删除这些项目。当用户点击添加时,我想向用户显示所有350个对象,并提供搜索机制。

在这种情况下,我应该将JSON Feed存储到Plist还是使用Core Data?

2 个答案:

答案 0 :(得分:5)

这取决于。如果您没有遇到实际的性能问题,请为您的应用程序做更具可读性和适用性的问题。例如,如果要保存用户可以添加某种记录的数据,则核心数据会处理常见情况,并且可以与获取的数据控制器一起使用以非常顺利地管理表。它还可以轻松绑定到您的对象模型,因此您无需执行键查找。

如果您对静态键列表有合理数量的静态数据或可编辑值,并且您始终需要加载所有这些值,请继续并加载plist以方便使用。发布有关您具体情况的更多信息,我可以更新我的答案。

<强>更新

我认为你可能想要使用Core Data有几个原因。首先,如果这些对象中的每一个都具有相同的8个键,则您需要使用绑定对象而不是字典来表示每个对象。其次,核心数据旨在被搜索,分类和过滤。第三,使用NSFetchedResultsController将它绑定到表(使用右索引)或滚动选择器并不困难。如果您将NSManagedObject的属性命名为与8个键相同,则使用KVC从JSON加载也非常容易。

你可以使用一个plist,但必须做更多的腿部工作。

答案 1 :(得分:3)

与生活中的许多事情一样,这取决于。我会说,只要数据不是太大而不能保留在内存中,plist可能会很好。此外,如果数据是静态的,我会倾向于plist。如果您拥有大量数据或大量相关数据对象并且数据随时间而变化,CoreData会更好。

根据您的修改。我同意Core Data是最佳选择。每当您经常添加/更新/删除/排序/搜索/过滤数据时,我更喜欢Core Data,这也是Apple推荐的方法。