Использование FilterArrayUsingPredicate всегда возвращает пустой массив для выбранных объектов Core Data - PullRequest
3 голосов
/ 08 февраля 2010

Я пытаюсь использовать NSArray FilterArrayUsingPredicate: метод для фильтрации массива управляемых объектов основных данных.Вот схема:

NSArray *array = self.fetchedResultsController.fetchedObjects;

NSPredicate *predicate = [NSPredicate
                          predicateWithFormat:@"name contains[c] %@", searchString];

NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];

Это всегда возвращает пустой «FilterArray»?Я предполагаю, что это мой предикат, но я знаю, что объекты в массиве - это управляемые объекты с ключом, называемым «имя».Значение searchString в порядке, и я запустил executeFetch: before.

1 Ответ

6 голосов
/ 08 февраля 2010

Ваш предикат в порядке.

Я бы дважды проверил массив и searchString:

NSArray *array = self.fetchedResultsController.fetchedObjects;

NSLog(@"array = %@",array);
NSLog(@"array count = %d",[array count]);
NSLog(@"searchString = %@",searchString);

NSPredicate *predicate = [NSPredicate
                          predicateWithFormat:@"name contains[c] %@", searchString];

NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
...