iphone核心数据 - 过滤NSFetchedResultController?

ary*_*axt 0 iphone core-data nspredicate nsfetchedresultscontroller

我得到了其他程序员编写的框架来访问核心数据.在这种情况下,我收到一个预加载的NSFetchedResultController,我需要过滤,以显示它的一部分数据.

这是我尝试过的:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"];
[NSFetchedResultsController deleteCacheWithName:@"Root"];
[myResultController.fetchRequest setPredicate:predicate];
myResultController.fetchedObjects = [myResultController.fetchedObjects filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说无法设置对象,缺少setter方法,或者对象是只读的.

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

vfn*_*vfn 5

fetchedObjects只读.你不能手动设置它.

你需要做的是用你的myResultController.执行一个新的提取.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"];
[NSFetchedResultsController deleteCacheWithName:@"Root"];
[myResultController.fetchRequest setPredicate:predicate];
//myResultController.fetchedObjects = [myResultController.fetchedObjects filteredArrayUsingPredicate:predicate];
[myResultController performFetch:nil];
Run Code Online (Sandbox Code Playgroud)