SQL谓词与可变阵列

时间:2011-11-04 14:19:47

标签: iphone objective-c database core-data nsmutablearray

我目前有一个'学校'实体和'名称'实体的数据库。 [学校< ----(一对多)-------->>名称]。我在表中显示数据库,并希望用户能够通过键入进行搜索。每当搜索栏文本发生变化时,表格都会更新,因此我需要这样做才能有效。

现在我获取数据库中所有学校实体的Mutable数组,然后根据输入的文本过滤数组。使用NSPredicate来获取相关学校会更加有效吗?

3 个答案:

答案 0 :(得分:1)

高效是一个加载的词;您当前的方法可能表现最佳,但使用更多RAM。就像杰里米所说,访问闪存数据存储时谓词会更慢。如果您可以断言内存使用情况合理(测量),那么您当前的方法可能会提供更好的用户体验。请记住应用程序可能运行的设备的最低公分母(例如iPhone 3g)。

答案 1 :(得分:1)

NSPredicate *predicate = [NSPredicate predicateWithFormat:
                              @"schoolTitle CONTAINS[cd] %@", searchTitle];

schoolTitle是实体的属性。

答案 2 :(得分:0)

没有。在引擎盖下它做了很多相同的事情,除了可能更频繁地调用磁盘,即每次运行谓词。

话虽如此,在你的案件中可能有特殊情况使我的陈述错误。尝试以两种方式实现它并收集一些性能统计数据。