带有 SUBQUERY 的 NSPredicate 不起作用

Posted

技术标签:

【中文标题】带有 SUBQUERY 的 NSPredicate 不起作用【英文标题】:NSPredicate with SUBQUERY does not work 【发布时间】:2013-03-26 18:21:49 【问题描述】:

我需要用选定的人对我的获取请求进行排序,但它没有返回任何内容

我用 coredata 对象比较了这段代码

NSPredicate *peoplePredicate = [NSPredicate predicateWithFormat:@"SUBQUERY(classPeople, $p, $p IN %@).@count == %d", self.selectedPeople, [self.selectedPeople count]];

这与 nsnumber iD 比较

NSPredicate *peoplePredicate = [NSPredicate predicateWithFormat:@"SUBQUERY(classPeople, $p, $p.iD IN %@).@count == %d", self.selectedPeopleiD, [self.selectedPeopleiD count]];

我有实体类,它有关系人。而且我有视图控制器,我可以在列表中选择一些人,在选择人对象后添加到数组 self.selectedPeople,所以我需要获取已选择人员的 Class 实体的所有对象

提前致谢

【问题讨论】:

您应该解释您的实体、属性、关系以及您想要实现的目标。 【参考方案1】:

那么,你的谓词应该是这样的:

NSPredicate *peoplePredicate = [NSPredicate predicateWithFormat:@"ANY classPeople IN %@", self.selectedPeople];

【讨论】:

以上是关于带有 SUBQUERY 的 NSPredicate 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicate 表达式中 SUBQUERY 的快速解释

是否可以在 NSPredicate 中使用嵌套的 SUBQUERY?

NSPredicate 中使用的 SUBQUERY( ) 是不是不支持所有集合运算符,如 @max、@min?

如何构建这个 SUBQUERY NSPredicate?

使用嵌套的 NSPredicate SUBQUERY

子查询中的 NSPredicate