2010-10-21 47 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