У меня есть один основной массив с именем originalListArray с несколькими объектами. Вот пример объекта. Example.jsonФильтр NSArray с NSDictionary (вложенным уровнем объекта) с использованием NSPredicate ANY и IN?
Я хочу, чтобы найти, что количество объектов из originalListArray, которые amenity_id совпавших с моими данными фильтра. Я сделал это, создаю один предикат usign ANY не self becuase NSArray с NSDictionary и в этом словаре объект может иметь данные NSArray.
Это прекрасно работает.
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"ANY amenities.amenity_id =='1')"];
Это не работает.
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"ANY amenities.amenity_id in ('1','2','3')"];
Так Одно значение может быть фильтр легко, но usign IN oparation его аварии и ошибки, как это.
Согласующего приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: 'Невозможно разобрать строку формата "ANY amenities.amenity_id в ('1', '2', '3')"'
Спасибо, если кто-нибудь может помочь мне в этом.
'[NSPredicate predicateWithFormat: @ "ANY amenities.amenity_id IN% @", @ [@ "1" @, "2", @ "3"]] '? – Larme
@ Larme Да, его работа. Прежде всего, благодарю вас за ваш быстрый ответ, но я не понял, почему мне нужно передать массив. Поскольку запрос IN мы обычно передаем как значение, разделенное запятыми, в виде строки. –
Если вы запишете рабочий предикат, вы увидите, что на самом деле это '@" ЛЮБОЕ удобства: имя_на_и_и_ИНА {'1', '2', '3'} "' (используя браслеты вместо круглых скобок). Нет, передача его с помощью заполнителя (% @) дает более легкие изменения при необходимости. – Larme