3

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

NSArray *array = self.fetchedResultsController.fetchedObjects;

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

NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];

这总是返回一个空的“filteredArray”?我猜这是我的谓词,但我知道“数组”中的对象是托管对象,其键名为“名称”。'searchString' 的值没问题,我之前运行过 performFetch:。

4

1 回答 1

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];
于 2010-02-08T18:53:00.167 回答