web-dev-qa-db-fra.com

NSArray avec NSPredicate utilisant NOT IN

J'ai un NSArray que je veux filtrer certains objets en utilisant un NSPredicate, j'espérais pouvoir utiliser NOT IN car j'ai vu que je pouvais facilement faire un IN.

J'ai donc mon tableau:

self.categoriesList

Ensuite, j'obtiens les valeurs que je veux supprimer:

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

Cela me donne une liste de ParentCategoryID pour les catégories que je ne veux pas afficher, donc je pense que je peux utiliser un NSPredicate pour les supprimer:

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

Cela échoue:

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

Si je voulais utiliser juste IN, cela fonctionne parfaitement bien sûr.

87
Slee

Qu'en est-il de NOT (CategoryID IN %@)?

210
dreamlax

Que diriez-vous d'utiliser NONE?

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