让我们说我有这个谓词:
NSPredicate *filter = [NSPredicate predicateWithFormat:@"%K == NO", @"someAttribute"];
我希望将该谓词改为:
NSPredicate *filter = [NSPredicate predicateWithFormat:@"%K == YES", @"someAttribute"];
有没有办法在不创建新谓词的情况下执行此操作。
答案 0 :(得分:9)
您无法修改现有的NSPredicate
。但是你可以很容易地创建一个新的谓词,它是filter
的“反向”(或更准确地说是否定):
NSPredicate *notFilter = [NSCompoundPredicate notPredicateWithSubpredicate:filter];
请参阅+[NSCompoundPredicate notPredicateWithSubpredicate:]
documentation。