2015-11-12 1 views
-1

Я установил NSPredicate, чтобы проверить, является ли объект category_idIN в NSArray чисел.NSPredicate with IN NSNumbers

Код:

///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] 

Это работает нормально, но после того, как я изменил мой category_array к содержит NSNumber предикат перестал работать. Как я использую NSPredicate для NSNumber?

Обновление: Массивы:

enter image description here

Entity для Category:

enter image description here

+0

как это новая категория массив выглядит? его также NSNumber (первая строка кода) – ogres

+0

Я обновляю ответ, как он выглядит в отладчике. – BlackM

+0

Как вы используете этот предикат? Что такое 'category_id'? Является ли это свойством какого-либо объекта? – Avi

ответ

0

Вы делаете небольшую, но вопиющая ошибка здесь. Вы добавляете массив @[@1,@2,@4] как объект в массиве category_array.

Try:

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

или просто

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

К сожалению, это была опечатка. Использование этого способа работает нормально. проблема заключается в том, что я добавляю NSNumber с '[array addObject: num]' – BlackM

+0

@BlackM. Кроме того, ваша 'category_id' является строкой, а не номером. Это может быть проблемой. – Nishant

+0

Да, я знаю, что просто добавлю его как String для простоты. Во всяком случае, он работал с первым подходом. Я попробую изменить это и дам вам знать – BlackM

0

Вы делаете маленькую ошибку

попробовать этот код

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

Мой массив динамически построен с использованием NSNumber, поэтому я не могу этого сделать – BlackM

 Смежные вопросы

  • Нет связанных вопросов^_^