iphone核心数据过滤NSFetchedResultController?

iphone核心数据过滤NSFetchedResultController?,iphone,core-data,nsfetchedresultscontroller,nspredicate,Iphone,Core Data,Nsfetchedresultscontroller,Nspredicate,其他程序员给了我一个框架来访问核心数据。 在这种情况下,我会收到一个预加载的NSFetchedResultController,需要对其进行筛选,以显示其部分数据 以下是我尝试过的: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"]; [NSFetchedResultsController deleteCacheWithName:@"Root"]; [myResultCon

其他程序员给了我一个框架来访问核心数据。 在这种情况下,我会收到一个预加载的NSFetchedResultController,需要对其进行筛选,以显示其部分数据

以下是我尝试过的:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"];
[NSFetchedResultsController deleteCacheWithName:@"Root"];
[myResultController.fetchRequest setPredicate:predicate];
myResultController.fetchedObjects = [myResultController.fetchedObjects filteredArrayUsingPredicate:predicate];
我得到一个错误,表示无法设置对象,要么缺少setter方法,要么对象是只读的


那么,过滤已加载的NSFetchResultController而不必将过滤后的数据存储到另一个数组中的最佳方法是什么呢?

FetchedObject
是只读的。你不能手动设置它

您需要做的是使用
myResultController
执行新的获取

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"];
[NSFetchedResultsController deleteCacheWithName:@"Root"];
[myResultController.fetchRequest setPredicate:predicate];
//myResultController.fetchedObjects = [myResultController.fetchedObjects filteredArrayUsingPredicate:predicate];
[myResultController performFetch:nil];

fetchedObjects
为只读。你不能手动设置它

您需要做的是使用
myResultController
执行新的获取

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"];
[NSFetchedResultsController deleteCacheWithName:@"Root"];
[myResultController.fetchRequest setPredicate:predicate];
//myResultController.fetchedObjects = [myResultController.fetchedObjects filteredArrayUsingPredicate:predicate];
[myResultController performFetch:nil];