我通过用户在每个给定字符后使用performFetch:
获取,实现了一种类型搜索(单个属性的文本搜索)。 performFetch:
正在后台线程中运行以避免键盘冻结。
但是在键入许多无用的提取时会启动。 NSOperationQueue可能是一个选项,但我想知道是否有其他方法可以解决这种常见的搜索行为。
完成提取时会注意到什么是最佳做法,并且使用之前的提取更新表视图以启动新的提取?
答案 0 :(得分:4)
每个字母后都不需要在Core Data堆栈上执行提取。您可以针对fetchedObjects
实例中已有的NSFetchedResultsController
运行NSPredicate。这将消除在后台线程上执行提取的需要,因为您只是对已经在内存中的结果进行过滤,这将消除性能问题。
在输入每个字母时,您需要调整NSPredcate
,结果会进一步过滤。