我正在尝试使用NSArray的filteredArrayUsingPredicate:方法来过滤核心数据托管对象的数组。概述如下:

NSArray *array = self.fetchedResultsController.fetchedObjects;

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

NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];


这总是返回一个空的'filteredArray'吗?我猜这是我的谓词,但我知道“数组”中的对象是具有称为“名称”的键的托管对象。 'searchString'的值还可以,我之前已经运行了performFetch:。

最佳答案

您的谓词很好。

我会仔细检查数组和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];

关于iphone-sdk-3.0 - 使用filteredArrayUsingPredicate始终为获取核心数据的对象返回一个空数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2222291/

10-08 21:04