NSPredicate将自我排除在自我之外

时间:2014-01-20 14:46:40

标签: objective-c core-data ios7 nspredicate

我有PersonNSManagedObject类型。 这个类有@property (nonatomic, retain) NSSet *mentors;个导师与Person类的多对多关系。

我正在尝试为NSPredicate创建NSFetchedResultsController,以便从结果中排除_person及其mentors

NSPredicate *prPerson = [NSPredicate predicateWithFormat:@"SELF != %@ AND NONE mentors = %@",_person,_person];

谓词的第一部分效果很好,但我遇到了一个问题。我也尝试"ANY mentors != %@"但没有成功。

如何从结果中排除_person.mentors

2 个答案:

答案 0 :(得分:3)

要排除_person_person.mentors,以下谓词应该有效:

[NSPredicate predicateWithFormat:@"SELF != %@ AND NOT SELF IN %@",
       _person, _person.mentors]

答案 1 :(得分:1)

我相信这可行:

NSPredicate *prPerson = [NSPredicate predicateWithFormat:@"SELF != %@ AND NOT (SELF IN %@)", _person, _person.mentors];