我的CoreData模型有3个具有多对多关系的实体:
工作<< - >>组<< - >>人
因此,小组可以做不同的工作,人们可以参与不同的小组
我想找所有做某事的人
我的想法让我写下这样的东西:
任何小组。任何工作=='某份工作'
但我知道这是错的。 :)下一个谓词是正确的,做我的意思:
任何group.job =='某项工作'
?
答案 0 :(得分:0)
虽然NSPredicate确实支持点语法,但不支持多对多关系。也许最好的解决方案是使用谓词匹配@“ANY job LIKE group”和@“ANY group LIKE job”执行两个单独的获取请求,并将结果相交。
答案 1 :(得分:0)
您不需要使用谓词来查找所有做某事的人。
NSSet* groups = someJob.groups; //this will get all group that does the job
NSMutableSet* people = [NSMutableSet set];
for(Group* aGroup in groups){
[people unionSet:aGroup.people]; //this will add the people in this group
}
//now people set has all the people that does the job