我在我的第一個iPhone應用程序中使用核心數據,並試圖理解NSFetchedResultsController。它在我的根視圖中很好用。我是否需要在每個視圖控制器中實例化一個實例?如果是這樣,是否有一個模板可以讓它像在我的根控制器中一樣簡單(我在創建項目時只是在模板中檢查了一個框)。當我添加一個新的視圖控制器時,我看不到使用核心數據的選項。我應該在每個視圖中都有一個NSFetchedResultsController嗎?
更新:即使在將代碼剪切/粘貼到第二個視圖後,我花了一段時間才意識到,我還需要在切換到新視圖之前設置managedObjectContext。添加以下行到我的RootViewController的推導航堆棧上的新觀點之前:
self.newVC.managedObjectContext = self.managedObjectContext;
謝謝。我正在想象一個不同的實體。 XCode是否做了任何事情來簡化它,或者我真的必須爲每個視圖剪切/粘貼該代碼?我知道這不是什麼大問題,但我必須從頭文件中獲取定義,並從m文件中獲取實現。一種痛苦。 – 2010-02-08 00:00:29
你真的必須剪切和粘貼每個視圖。要麼是這樣,要麼創建另一個類來抽象出與獲取的結果控制器的交互。儘管我嘗試了一次,直接處理抓取的結果控制器會更好。 – kubi 2010-02-08 00:28:20
就像kubi說的那樣,根據需要可視化的不同實體的數量,在這裏抽象出一些細節可能效率也可能不高。如果是2或3,則複製並粘貼。如果它是10,也許抽象開始節省你的時間。或者,如果這些代碼將在未來得到更多的重用,那也意味着從一開始就保持清潔。在這裏務實,根據你的領域和你的要求打電話,而不是嚴格遵守DRY原則。 – 2010-02-08 01:08:55