NSArray с NSPredicate с использованием NOT IN

90

У меня есть NSArray, в котором я хочу отфильтровать определенные объекты с помощью NSPredicate, я надеялся, что смогу использовать NOT IN, так как увидел, что могу легко выполнить IN.

Итак, у меня есть свой массив:

self.categoriesList

Затем я получаю значения, которые хочу удалить:

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

Это дает мне список ParentCategoryID для категорий, которые я НЕ хочу отображать, поэтому я полагаю, что могу использовать NSPredicate для их удаления:

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

Это не удается:

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

Если бы я хотел использовать только IN, это, конечно, отлично работает.

Slee
источник

Ответы:

2

Как насчет использования NONE?

[NSPredicate predicateWithFormat:@"NONE CategoryID IN %@", parentIDs];
Марк Адамс
источник
2
Обратите внимание, что NONE предназначен только для отношения ко многим. См stackoverflow.com/questions/12127618/...
Lubbo