2011-10-24 97 views
1

似乎controllerDidChangeContent:一旦我在我的上下文中創建一個新的託管對象時被調用。該文檔似乎暗示此方法僅在您保存後調用:上下文。核心數據 - NSFetchedResultsController錯誤

這個「錯誤」,如果它是一個,導致我的應用程序崩潰,因爲作爲我的表視圖單元的一部分,我需要加載創建主要管理對象時不存在的其他管理對象。

有人似乎太已經看準了這一點,請查看下面的鏈接,我很想聽聽您對此的看法:http://openradar.appspot.com/10207615


更多信息

雖然我添加了鏈接到這篇文章展示了一個使用兩個NSManagedObjectContext的例子,我的應用程序使用了一個上下文,但是controllerDidChangeContent:被一個對象在唯一的上下文中創建並且controllerDidChangeContent:被調用爲se當我保存的時候:這個上下文。根據我的理解,只有在保存上下文時才應該發送此方法。

+1

您是否通過單步執行帶有斷點的代碼進行檢查? – Mundi

+0

是的,我一旦創建了一個託管對象的代碼塊被執行,controllerDidChangeContent:正在被髮送消息。看看鏈接,它證明了這個問題。 – Daniel

回答

1

解決方案是避免處理多個managedObjectContext。如果您的單元需要加載其他管理對象,則它應該仍然使用與主要管理對象相同的管理對象上下文。

我還沒有看到一個用例,它絕對不可避免地使用多個指向同一模型的同一模型的被管理對象上下文。

+0

嗨Mundi,我實際上只在應用程序中使用一個上下文,在應用程序委託中創建並通過引用傳遞。我相應地更新了這篇文章。 – Daniel