2010-10-21 48 views
0

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

这里是我的尝试:

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

,我得到一个错误,指出对象不能设置,无论是setter方法缺失,或对象是只读的。

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

回答

5

fetchedObjects是只读的。您不能将其设置为manualy。

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

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

谢谢我会试一试 – aryaxt 2010-10-22 15:49:09