在键入大型Core-Data数据集时进行搜索

时间:2011-04-13 07:41:02

标签: ios search core-data

我有一个大型核心数据数据集,我想添加搜索支持。目前我正在使用获取的结果控制器来显示uitableview中的数据。我打算使用UISearchDisplayController。现在我有两个选择:

  1. 为搜索到的数据创建新的抓取结果控制器
  2. 使用数组显示已过滤的数据
  3. 哪种方法更合适/推荐(特别是对于搜索类型)?是否有任何书籍或教程可以解决如何实施建议的解决方案?

2 个答案:

答案 0 :(得分:2)

在几个项目中,我使用了“new fetched results controller”选项,因为我过滤的数据可能会占用旧款iPhone中的所有内存。 FRC可以处理低内存问题。 This stackoverflow answer might be helpful to you if you go ith this option

您的数据是否足够小以适应最低公分母(第一代iPhone)的可用内存?如果是这样,那么只需使用NSArray在内存中进行过滤。性能方面,这比使用FRC要快。

答案 1 :(得分:1)

是否一直在写入数据?我有一组1,200条记录可以通过“包含”搜索进行搜索。我在app启动时所做的是有一个对象,其中包含基于coredata商店的所有数据集。如果数据在应用程序使用期间更新 - 它会重新构建集。

然后当我到达搜索表视图时,我搜索预先加载的数据。每次执行一次获取都会导致过多的延迟 - 即使编写好的谓词和获取结果控制器也是如此。我发现手动操作要快得多,因为我可以创建数据子集以加快搜索速度。

希望这有助于您的决定。

干杯,

迈克尔