2015-11-12 2 views
-1

J'ai mis en place un NSPredicate pour vérifier si l'objet category_id est IN dans un NSArray de nombres.NSPredicate avec IN NSNumbers

Le code:

///This is working 

NSArray *arr2 = [[NSArray alloc]initWithObjects:@[@3,@2,@3],nil]; 

[NSPredicate predicateWithFormat:@"category_id IN %@", arr2] 

//This is not working 

NSArray *arr = [[NSArray alloc]initWithArray:category_array]; //Array with NSNumbers 

[NSPredicate predicateWithFormat:@"category_id IN %@", arr] 

Ce fonctionnait très bien, mais après avoir changé mon category_array à NSNumber contient le prédicat a cessé de fonctionner. Comment j'utilise NSPredicate pour NSNumber?

Mise à jour: tableaux:

enter image description here

Entité pour Category:

enter image description here

+0

comment nouveau tableau de catégorie ressemble? c'est aussi NSNumber (la première ligne du code) – ogres

+0

Je mets à jour la réponse à quoi il ressemble dans le débogueur. – BlackM

+0

Comment utilisez-vous ce prédicat? Qu'est-ce que 'category_id'? Est-ce la propriété d'un objet? – Avi

Répondre

0

Vous faites erreur mineure mais flagrante ici. Vous ajoutez un tableau @[@1,@2,@4] en tant qu'objet dans le tableau category_array.

Essayez:

NSArray *category_array = [[NSArray alloc] initWithArray:@[@1,@2,@4]]; 

ou simplement

NSArray *category_array = @[@1,@2,@4]; 
+0

Désolé, c'était une faute de frappe. L'utilisation de cette façon fonctionne bien. le problème est quand j'ajoute NSNumber avec '[tableau addObject: num]' – BlackM

+0

@BlackM - En outre, votre 'category_id' est une chaîne et pas un nombre. Cela pourrait être un problème. – Nishant

+0

Oui, je sais que je viens de l'ajouter en tant que chaîne pour la simplicité. De toute façon, il travaillait avec la première approche. Je vais essayer de changer cela et vous le faire savoir – BlackM

0

Vous faites une petite erreur

essayer ce code

NSArray *category_array = @[@1,@2,@4]; 
+0

Mon tableau est construit dynamiquement en utilisant NSNumber donc je ne peux pas le faire – BlackM