Iphone 使用Core Data/NSFetchedResultsController键入搜索时

Iphone 使用Core Data/NSFetchedResultsController键入搜索时,iphone,objective-c,cocoa-touch,search,core-data,Iphone,Objective C,Cocoa Touch,Search,Core Data,我通过在用户指定的每个字符后使用performFetch:进行获取,实现了一个随输入搜索(单个属性上的文本搜索)。performFetch:正在后台线程中运行,以避免键盘冻结 但是在输入的同时,许多无用的抓取开始了。NSOperationQueue可能是一个选项,但我想知道是否有其他方法可以实现这种非常常见的搜索行为 当完成提取并使用以前的提取更新表视图以开始新的提取时,需要注意的最佳实践是什么?您不需要在每个字母之后对核心数据堆栈执行提取。您可以对已在NSFetchedResultsContr

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

但是在输入的同时,许多无用的抓取开始了。NSOperationQueue可能是一个选项,但我想知道是否有其他方法可以实现这种非常常见的搜索行为


当完成提取并使用以前的提取更新表视图以开始新的提取时,需要注意的最佳实践是什么?

您不需要在每个字母之后对核心数据堆栈执行提取。您可以对已在
NSFetchedResultsController
实例中的
fetchedObject
运行NSPredicate。这将消除在后台线程上执行抓取的需要,因为您只是根据内存中已有的结果进行筛选,这将消除性能问题


键入每个字母时,您可以调整
nspreditate
,并进一步过滤结果。

谢谢,我将尝试在
fetchedObjects
上运行nspreditate的方法。如果检测到删除,则谓词将从yes开始。