从关系中获取请求CoreData

时间:2015-01-05 11:29:12

标签: ios objective-c core-data

这种情况,我在CoreData中有两个实体。

  • 问题(章:int,答案:数组)
  • 答案(日期,正确:bool)

这就是他们的相关方式:

  • 问题实体有它所属的章节和该问题的答案历史(这是一种关系)。
  • 答案实体知道问题何时得到解答,而且问题是否正确。
  • 一个问题有很多答案。

我想要的最终结果是这样的......

Fetch questions WHERE chapter = <some> and (LAST) answer.correct = YES

我对核心数据有点新意,现在我正在做很多步骤,但我想知道我是否只用一个NSFetchedResultsController就可以实现这一点而不需要过滤数组。

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

试试这个谓词。可能适合你。

  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"chapter = '%@' AND answer[LAST].correct=TRUE",chapterName];

答案 1 :(得分:1)

有点令人费解,但我认为以下内容会得到你想要的东西:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"chapter like %@ AND (SUBQUERY(answer, $t, $t.correct == YES).date.@max = SUBQUERY(answer, $t, $t.correct IN {YES, NO}).date.@max)"];

检查正确答案的最大日期是否等于所有答案的最大日期。