使用filteredArrayUsingPredicate始终为Core Data提取的对象返回一个空数组

pet*_*ert 3 core-data nsarray iphone-sdk-3.0 nspredicate

我正在尝试使用NSArray的filteredArrayUsingPredicate:方法来过滤核心数据托管对象的数组.这是一个大纲:

NSArray *array = self.fetchedResultsController.fetchedObjects;

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

NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

这总是返回一个空的'filteredArray'?我猜这是我的谓词,但我知道'array'中的对象是带有名为"name"的键的托管对象.'searchString'的值是可以的,我已经运行了performFetch:before.

ger*_*ry3 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];
Run Code Online (Sandbox Code Playgroud)