使用SUBQUERY的NSPredicate不起作用

时间:2013-03-26 18:21:50

标签: ios core-data subquery nspredicate

我需要为选定的人排序我的获取请求,但它不会返回任何内容

我用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]];

我有实体类,有人关系。而且我有viewcontroller,我可以在列表中选择一些人,在选择了人物对象后添加到数组self.selectedPeople,所以我需要获取Class实体的所有对象,这已经选择了人

提前致谢

2 个答案:

答案 0 :(得分:2)

好的问题是我在Class实体中将我的关系设置为No Inverse,之后我将其改为人们关系的价值 - 解决了类问题

工作代码是:

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

感谢所有

答案 1 :(得分:1)

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

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