0

我想知道如果我能做到這一點NSFetchedResultsController對同一管理對象(表)

VIEW 1:使用NSFetchedResultsController上TABLEA檢索表中的視圖中的數據,顯示並採取行動將其保存

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:referringObject sectionNameKeyPath:nil cacheName:@"TABLEA"]; 

然後在VIEW 2中使用SAME表上的NSFetchedResultsController,即TABLEA檢索沒有表視圖的數據並返回到視圖1以保存先前的託管對象??

回答

1

TABLEA不是一個SQL表。核心數據不是SQL。在這種情況下,TABLEA只是獲取的結果控制器(FRC)緩存文件。在控制器之間傳遞相同的高速緩存將無能爲力,因爲只要您更改了任何內容,高速緩存就會自行刷新。你原則上可以通過FRC本身,但這從來沒有完成,因爲它變得混亂。

託管對象實例附加到託管對象上下文,而不是提取或提取結果控制器。如果你想在視圖控制器之間傳遞一個託管對象,你需要傳遞這個對象本身。如果你想將上下文保存在不同的控制器中,那麼你也要傳遞上下文。提取不會進入它。

抓取操作/ FRC通常專用於特定的視圖 - 控制器,因爲每個視圖 - 控制器需要在一個特定的排序順序來顯示數據的特定子集因此每個視圖 - 控制器需要定製其自身獲取。

+0

謝謝你的詳細解釋。 – Accilies 2010-09-16 23:46:21

0

只要您使用相同的託管對象上下文,它們將返回相同的託管對象。

相關問題