1

这可能是一个简单的问题,但是经过大量搜索后,我对正确答案仍然有些困惑。

我有一个使用核心数据的应用程序和一个由 NSFetchedResultsController 填充的 UITableView。我想在表格视图的顶部添加一个搜索栏,并使用搜索栏和搜索显示控制器过滤表格视图中的数据

我想知道的是这样做的正确方法是什么?

每次搜索词更改时,我见过的大多数示例都会修改 NSFetchRequest 谓词?这似乎会给所有请求增加很多开销

苹果示例似乎只处理基于数组的 tableview 结果搜索。

我是否应该基于 fetchedObjects 创建一个数组并在该数组上搜索并将过滤后的结果放入另一个数组中。

非常感谢提前马特

4

1 回答 1

0

不要过早优化。

更改获取请求的谓词。NSFetchResultsController 非常适合减少对 CoreData 的访问。

一旦你让它工作,使用仪器来隔离任何性能问题。

如果您自己搜索对象数组,则必须将每个对象都放入内存中,然后搜索所有对象。是的,你仍然需要搜索它们,但是让 CoreData 来做,因为它几乎总是更快。

编辑

关于 iOS 应用程序开发的斯坦福 iTunes U 课程是免费视频指导的不错选择。Ray Wenderleich 在这里有一个很好的关于 NSFetchedResultsController 的教程:http ://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller

于 2012-04-23T10:44:18.070 回答