【问题标题】:Core Data - Find out if a relationship between two objects exists核心数据 - 找出两个对象之间是否存在关系
【发布时间】:2013-01-23 14:07:21
【问题描述】:

我正在制作一个包含调查问卷的应用程序,并且我正在使用 Core Data 来保存它的所有数据。

共有三个实体: 人(接受问卷的人), 问题(问题), QuestionResult(问题的结果)

Person 与 QuestionResult 相关联,而 QuestionResult 则通过关系链接到 Question。

给定一个 Person 和 Question 实体,我希望能够找到两者之间是否存在关联的 QuestionResult 对象。这可以使用 NSPredicate 完成吗?

【问题讨论】:

    标签: ios core-data nspredicate relationship nsmanagedobject


    【解决方案1】:

    设置:

    Person <<------->> Question
    Person <-------->> Answer
    Question <------>> Answer
    

    解决办法:

    NSSet *filtered = [person.answers filteredSetUsingPredicate:
       [NSPredicate predicateWithFormat:@"question == %@", questionObject]];
    BOOL thereIsAnAnswer = filtered.count != 0;
    

    或者,如果你不需要给一个人分配一个问题,除非有答案,你可以简化模型:

    Person <---------->> Answer <<----------> Question;
    

    谓词将完全相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多