【问题标题】: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;
谓词将完全相同。