核心数据 - 查明两个对象之间是否存在关系

时间:2013-01-23 14:07:22

标签: ios core-data nspredicate relationship nsmanagedobject

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

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

Person链接到QuestionResult,它与一个问题相关联,所有这些都通过关系进行。

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

1 个答案:

答案 0 :(得分:0)

设置:

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

解决方案:

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

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

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

谓词将完全相同。