使用Core Data / NSFetchedResultsController进行搜索类型搜索

时间:2010-05-12 17:22:42

标签: iphone objective-c cocoa-touch search core-data

我通过用户在每个给定字符后使用performFetch:获取,实现了一种类型搜索(单个属性的文本搜索)。 performFetch:正在后台线程中运行以避免键盘冻结。

但是在键入许多无用的提取时会启动。 NSOperationQueue可能是一个选项,但我想知道是否有其他方法可以解决这种常见的搜索行为。

完成提取时会注意到什么是最佳做法,并且使用之前的提取更新表视图以启动新的提取?

1 个答案:

答案 0 :(得分:4)

每个字母后都不需要在Core Data堆栈上执行提取。您可以针对fetchedObjects实例中已有的NSFetchedResultsController运行NSPredicate。这将消除在后台线程上执行提取的需要,因为您只是对已经在内存中的结果进行过滤,这将消除性能问题。

在输入每个字母时,您需要调整NSPredcate,结果会进一步过滤。