具有两对多关系的谓词中的任何单词

时间:2012-03-05 19:06:16

标签: ios core-data predicate

我的CoreData模型有3个具有多对多关系的实体:
工作<< - >>组<< - >>人
因此,小组可以做不同的工作,人们可以参与不同的小组 我想找所有做某事的人 我的想法让我写下这样的东西:
任何小组。任何工作=='某份工作'
但我知道这是错的。 :)下一个谓词是正确的,做我的意思:
任何group.job =='某项工作'

2 个答案:

答案 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