Здравствуйте. Нужна помощь с предикатом. Проблема в том, что я хочу, чтобы одна функция, которая будет извлекать данные из базы данных, зависит от нескольких значений, которые она получает, но значения не всегда существуют, значит ли это, что мне нужно создавать несколько разных предикатов?
Код ниже
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"brand_id LIKE %@ AND brand_id LIKE %@ AND brand_id LIKE %@ AND brand_id LIKE %@ AND brand_id LIKE %@ AND item_category LIKE %@ AND item_make LIKE %@ AND item_gender LIKE %@ || item_price>%@ || item_price<%@",
brand_one, brand_two, brand_three, brand_four, brand_five, categoryString, makeString, genderString,[NSNumber numberWithInt:price_bottom],[NSNumber numberWithInt:price_top]];
brand_one, brand_two и т. Д. Иногда существуют, а иногда нет.
А как это должно быть для item_gender например. Давайте, если не указан пол, чем иметь их обоих.
Извините, если мое описание проблемы сбивает с толку.
Основываясь на комментариях Гобры, был получен следующий код
NSArray *brands = [NSArray arrayWithObjects:brand_one, brand_two, brand_three, brand_four, brand_five, nil];
NSPredicate *predicate_brands = [NSPredicate predicateWithFormat:@"brand_id like %@" argumentArray:brands];
Логическое объяснение того, что функция поиска должна
- fetchrequest
- предикат при получении запроса
предикат, основанный на 5 идентификаторах бренда, идентификаторе товара, категории товара, марке товара, полу товара,
если любое из вышеперечисленного является пустым, оно должно извлечь все связанные записи, например, если категория элемента пуста, оно должно извлечь все «Ювелирные изделия, часы и т. д.», но ограничить его остальными выражениями предиката.
Должен ли я создать, например, составные предикаты для брендов, а затем создать еще один для категории товаров со значениями "item_category like Jewellery" и "item_category like Watches" и после этого, как мне их точно объединить?