使用 NOTIN 的带 NS谓词的 NSArray

我有一个 NSArray,我想过滤出某些对象使用 NSPreate,我希望我可以使用 NOT IN,因为我看到我可以很容易地做一个 IN。

这就是我的数组:

self.categoriesList

然后我得到我想删除的值:

NSArray *parentIDs = [self.cateoriesList valueForKeyPath:@"@distinctUnionOfObjects.ParentCategoryID"];

这给了我一个我不想显示的类别的 ParentCategory oryID 的列表,所以我想我可以使用一个 NS 谓词来删除它们:

self.cateoriesList = [self.cateoriesList filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"CategoryID NOT IN %@",parentIDs]];

这种做法失败了:

reason: 'Unable to parse the format string "CategoryID NOT IN %@"'

如果我只想使用 IN,那么当然可以完美地工作。

27320 次浏览

What about NOT (CategoryID IN %@)?

How about using NONE?

[NSPredicate predicateWithFormat:@"NONE CategoryID IN %@", parentIDs];