【发布时间】:2014-05-07 23:01:26
【问题描述】:
我正在尝试实现一些我确信之前已经实现过一百万次的东西,在核心数据数据库中进行搜索,使用fetchRequestController 和searchController 显示在表格中。
我的问题是为NSFetchRequest 编写NSPredicate。根据 Apple 的 NSPredicate 指南,并非您在 Sqlite 中可以做的所有事情都可以通过核心数据实现。
一段时间以来,我一直在努力寻找解决方案,但也许你们中的一个人可以利用他的经验来帮助我。
CoreData 数据库说明:
Shops 与 DiscountProgam 具有多对多关系。
我的用例如下:我需要过滤掉Shops who's name/address/zip/city 包含搜索字符串。这是容易的部分。
困难的部分是创建我要从中过滤的数据库部分,因为我有一组“活动”discountPrograms UID,我只希望shops 在其“折扣程序”中有一个活动折扣计划放。所以在伪代码中:
FROM Shops 至少有一个 discountProgram 的 uid IN activeDiscountProgramsArray WHERE name/address/zip/city CONTAINS searchString
这可能吗?我是否超出了谓词的限制? 如果是这样,我该怎么做?
【问题讨论】:
-
UID 是
DiscountProgam的属性,还是被管理对象的id?您目前正在尝试什么谓词? -
@Wain UID 是 DiscountProgram 的属性。我目前没有使用谓词,而是使用 for-in 循环在内存中执行所有操作。
标签: ios sqlite core-data nspredicate nsfetchrequest