因此,第一种方法是将原始源(巨大)数组放在内存中(最初从sqlite数据库中获取),然后在每次textDidChange事件触发时根据NSPredicate过滤该数组。
我还可以使用“where”和“limit”子句来执行SQLite查询(由于查询格式无法编入索引),以过滤数据库表。
我现在正在使用第一种方法,需要花费大量时间进行过滤。我想知道如何提高效率。
这些方法中的哪一种可以解决性能问题?
答案 0 :(得分:0)
如果您使用CoreData,则NSPredicate实际上会转换为SQLite代码,因此您 正在执行SQLite操作。
如果您的数据在内存中,那么使用Objective-C或Swift代码比NSPredicate效率更高。您只需要知道自己在做什么,因为NSPredicate会为您处理是否区分大小写之类的事情。