У меня есть множество пользовательских объектов, которые имеют кровати (1,2,3), камин (да или нет), логово (да или нет) и высоту потолка (9-11,11-14,14-16),Мне нужно разрешить фильтрацию по любому / всем / ни одному из элементов, выбранных для фильтрации.Таким образом, пользователь может захотеть увидеть 1 & 2 кровати, ден, камин и потолки 9-11 футов.Или только 1 и 2 кровати.Мой текущий предикат работает для некоторых из них.Но это не соответствует всем - только некоторым.Я думаю, что мне нужен подзапрос.Как создать вложенный (?) Подзапрос на основе массива фильтров?
Прямо сейчас пользователь выбирает кнопки, которые сопоставляются с фильтрами, и я использую их для создания предиката.
Текущий предикат
Filters is an array of keys and predicate strings like 'beds, 1' and 'ceilings, 9-11'
`NSMutableArray *subPredicates = [NSMutableArray array];
for (Filter*fil in filters) {
NSPredicate *unitsPredicate = [NSPredicate predicateWithFormat:@"%K == %@", fil.key, fil.predicate];
[subPredicates addObject:bedsPredicate];
}
NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:subPredicates];
NSLog(@"homes: %@", [searchArray filteredArrayUsingPredicate:predicate]);
NSArray *ar = [searchArray filteredArrayUsingPredicate:predicate];
Я бы хотел, чтобы кто-то мог выбрать любой из критериев и вернуть соответствующие данные.