我在iOS上展示了一個帶有不同視圖控制器的NSManagedObject
層次結構(基本上是三個層次)。我不完全明白的問題是,如果每個視圖控制器都需要NSFetchedResultsController
。對於根視圖控制器來說,它看起來很方便,但後面的視圖基於前一視圖中的選擇。與直接關係相比,NSFetchRequest
怎麼樣?顯示的數據是靜態的,並且不會改變,因此不需要準備更新。它將從核心數據sqlite文件中加載。NSFetchedResultsController/NSFetchRequest與NSManagedObject的多對多關係
這裏是我有什麼簡單的圖形:
A (1) <---> (*) B (1) <---> (*) C
因此,無論A
- B
和B
- C
關係是一個一對多和根視圖我顯示的A
的List 。選擇一個A
將在下一個視圖控制器等中顯示它的B
。
對於B
與NSFetchRequest
(或NSFetchedResultsController
)或只是使用A
中的多對多關係,是否有任何區別?內存足跡或內存不足時的情況是否有差異?據我所知,當didReceiveMemoryWarning
時,我總是可以將提取控制器帶走,但對於託管對象,我認爲它並不那麼簡單。這是嗎?我很樂意使用直接的關係。
在此先感謝。
謝謝你的回答。不,我沒有太多,至少要立刻提取。我的猜測是'NSFetchedResultsController'由於緩存和可能的延遲加載而與'UITableViewController'協作最好,對吧?感謝您提供有關錯誤的提示,我完全忘記了管理對象也可以清理。 – mkko