NSArray con NSPredicate usando NOT IN

90

Tengo un NSArray que quiero filtrar ciertos objetos usando un NSPredicate, esperaba poder usar NOT IN ya que vi que puedo hacer un IN fácilmente.

Entonces tengo mi matriz:

self.categoriesList

Luego obtengo los valores que quiero eliminar:

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

Esto me da una lista de ParentCategoryID para las categorías que NO quiero mostrar, así que supongo que puedo usar un NSPredicate para eliminarlas:

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

Esto falla:

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

Si quisiera usar solo IN, eso funciona perfectamente, por supuesto.

Slee
fuente

Respuestas:

220

¿Qué hay de NOT (CategoryID IN %@)?

Dreamlax
fuente