Подтвердить что ты не робот

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

У меня есть 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, который отлично работает, конечно.

4b9b3361

Ответ 1

Как насчет NOT (CategoryID IN %@)?

Ответ 2

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

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