У меня есть массив объектов с именами, адресами, tel. nos и т.д.
Я хочу, чтобы иметь возможность искать массив для любого вхождения термина - в поле имени, в поле адреса и т.д.
У меня есть что-то подобное:
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
// Update the filtered array based on the search text and scope.
// Remove all objects from the filtered search array
[self.searchResults removeAllObjects];
// Filter the array using NSPredicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",searchText];
searchResults = [NSMutableArray arrayWithArray:[contactArray filteredArrayUsingPredicate:predicate]];
}
Это вызывает исключение "Нельзя использовать в/содержит оператор с коллекцией".
UPDATE. Теперь я могу выполнить поиск по трем полям. Когда я добавляю четвертый (в любой последовательности), я получаю это исключение: "Невозможно разобрать строку формата..."
Код Predicate теперь:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.narrative contains[c] %@ OR SELF.category contains[c] %@ OR SELF.date contains[c] OR SELF.name contains[c] %@", searchText, searchText, searchText, searchText];
searchResults = [NSMutableArray arrayWithArray:[allDreams filteredArrayUsingPredicate:predicate]];
Есть три предела предикатных полей поиска? Как мне обойти это? Еще раз спасибо.