2013-11-04 36 views
0

我有一个与学生有多对多关系的NSManagedObject学校类。我有它工作的时候,我想找到包含通过使用指定的学生SchoolClasses,如何通过不在关系中的实体过滤核心数据

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(ANY students == %@)", student]; 

我将如何建立一个NSPredicate返回SchoolClasses的一个NSArray不包含指定的学生吗?我以为像下面这样的东西可以工作,但事实并非如此。

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(NONE students IN %@)", student]; 

回答

1

IN当右手边是一个集合,如学生数组时使用。试试这个谓词:

[NSPredicate predicateWithFormat:@"(NONE students = %@)", student]; 

这也相当于ALL students != %@

这将只返回不包含指定学生的SchoolClasses。

+0

谢谢你的回应。我相信它正确地回答了我的问题,正如我所问的那样。我犯了一个简化我的NSPredicate这个问题的例子的错误,所以不幸的是我的更复杂的逻辑(我没有在这个问题中提出),它没有按预期工作。另外,如果我尝试@,(“所有学生!=%@)”......它会与一个'Unsupported predicate(null)'消息一起崩溃。我将用我想要过滤的完整NSPredicate逻辑打开另一个问题。 – Feta