2012-03-29 39 views
1

當前設置: MVC-1 onViewDidLoad創建託管對象,從託管對象獲取數據並更新各種UI元素。使用一個數據庫處理兩個MVC之間的託管對象

MVC-2:完全相同的設置。我將相同的代碼從MVC-1複製並粘貼到MVC-2中。

我看到的問題: 啓動並打開MVC-1後,所有代碼都會執行而不會出現任何錯誤。 ManagedObject已創建,ManageObjectContext工作和UI上的提取請求已正確更新。然而,當切換到MVC-2時,似乎沒有任何數據,即MVC-2應該獲取,實際上正在更新。 MVC-2中的所有UI元素都具有與上次啓動應用程序相同的數據。此外,如果我啓動應用程序並首先打開MVC-2,我會得到相同的結果,但只有MVC-1不會在這次更新。

我在看什麼?我對數據庫進行了明確的保存。我(至少我認爲我是)創建兩個不同的ManagedObjects。在創建另一個之前我需要以某種方式關閉它嗎?任何建議都會非常有幫助。謝謝。

+0

您使用多少個託管對象上下文? – Max 2012-03-29 20:08:35

+0

每個MVC中有一個。每一個都是其MVC的私有屬性,並在ViewDidLoad上實例化。另外,因爲我將代碼從一個MVC複製到另一個,所以它們的命名相同。希望有所幫助。 – user1301424 2012-03-29 20:20:56

+0

我對蘋果的開發網站做了一些研究,我認爲這個問題可能與刷新上下文有關。雖然我不確定,但我對如何管理刷新有點困惑。 – user1301424 2012-03-29 21:16:43

回答

0

想通了。

我正在保存MOC,但是我並沒有將NSManagedDocument寫入磁盤(我正在使用ManagedDocument作爲Core Data數據庫的容器)。

很自然,當我切換到MVC-2時,我不會有更新的數據。

我現在保存MOC,將MD寫入磁盤並在viewWillDisappear處關閉MD。

感謝您的幫助gusy。

相關問題