Я пытаюсь отфильтровать данные UITableView's
, используя UISearchDisplayController
и NSCompoundPredicate
. У меня есть пользовательская ячейка с 3 UILabels
, которые я хочу отфильтровать при поиске, поэтому NSCompoundPredicate
.
// Filter the array using NSPredicate(s)
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"SELF.productName contains[c] %@", searchText];
NSPredicate *predicateManufacturer = [NSPredicate predicateWithFormat:@"SELF.productManufacturer contains[c] %@", searchText];
NSPredicate *predicateNumber = [NSPredicate predicateWithFormat:@"SELF.numberOfDocuments contains[c] %@",searchText];
// Add the predicates to the NSArray
NSArray *subPredicates = [[NSArray alloc] initWithObjects:predicateName, predicateManufacturer, predicateNumber, nil];
NSCompoundPredicate *compoundPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:subPredicates];
Однако, когда я это делаю, компилятор предупреждает меня:
Несовместимые типы указателей, инициализирующие «NSCompoundPredicate *_strong» с выражением типа «NSPredicate *»
Каждый пример, который я видел в Интернете, делает одно и то же, поэтому я в замешательстве. Метод NSCompoundPredicate orPredicateWithSubpredicates:
принимает (NSArray *)
в последнем параметре, поэтому я ДЕЙСТВИТЕЛЬНО запутался.
Что не так?