我正在尝试使用NSArray的filteredArrayUsingPredicate:方法来过滤核心数据托管对象的数组。这是一个大纲:
NSArray *array = self.fetchedResultsController.fetchedObjects;
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"name contains[c] %@", searchString];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
这总是返回一个空的'filteredArray'?我猜这是我的谓词,但我知道'array'中的对象是带有名为“name”的键的托管对象。 'searchString'的值没问题,我已经运行了performFetch:before。
答案 0 :(得分:6)
你的谓词很好。
我会仔细检查数组和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];