【问题标题】:ANY word in predicate with two to-many relationships具有二对多关系的谓词中的任何单词
【发布时间】:2012-03-05 19:06:15
【问题描述】:

我的 CoreData 模型有 3 个具有一对多关系的实体:
工作 > 组 > 人
所以小组可以做不同的工作,个人可以参与不同的小组。
我想获取所有从事某项工作的人。
我的想法建议我写这样的东西:
任何组。任何工作 == '一些工作'
但我知道这是错误的。 :) 下一个谓词是否正确并按我的意思做:
ANY group.job == 'some job'
?

【问题讨论】:

    标签: ios core-data predicate


    【解决方案1】:

    您无需使用谓词来查找所有从事某项工作的人。

    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
    

    【讨论】:

    • 是的,我真的可以在这里毫不犹豫地处理:) 谢谢
    【解决方案2】:

    虽然 NSPredicate 确实支持点语法,但不支持对多关系。也许最好的解决方案是使用匹配 @"ANY job LIKE group" 和 @"ANY group LIKE job" 的谓词执行两个单独的 fetch 请求,并将结果相交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多