2011-11-07 174 views
0

我目前面臨的問題是使用核心數據。我有兩個實體A和B. A可以有多個B,所以有一個一對多的關係。 dataModel和類都已正確定義並正在工作。現在,這裏是問題:核心數據不保存一個實體的屬性

當我創建一個實體A和一些B實體,並設置我能夠存儲和加載它們的所有屬性。當應用程序關閉並且實體A被加載時,所有屬性都被正確設置並且它仍然具有所有B實體。問題是在B實體內部所有的屬性都會丟失並且不被保存。保存ManagedObejctContext時不會發生錯誤。

我不明白爲什麼在應用程序啓動時獲取所有B,他們正在創建關於屬性值的工作,並從以前啓動獲取B,結果所有屬性都爲null。

感謝您的想法

SOLUTION: 建立幾個新的實體,尋找差異我發現,在B實體的性質某種方式與@synthesize與@dynamic初始化之後!這是被這個問題從

+0

你對兩者都使用相同的上下文嗎? – daveoncode

+0

是否在創建實體後執行save:方法?你如何創建B對象? –

+0

它是相同的上下文。我正在使用insertNewObjectForEntityForName方法,就像我爲A實體做的那樣 – ChrisIsBack

回答

1

來檢查以下內容:

  • 在數據模型,是你2間的關係(A有B和B屬於A)正確設置爲逆? (AtoB是BtoA的反轉)

  • 你確定它們不屬於幾個不同的managedObjetcContext嗎?

  • 您確定您對B項目所做的修改後面跟着[self.managedObjectContext save]

+0

感謝您的回覆,遺憾的是一切都很好。 – ChrisIsBack

+0

我想我知道。而不是insertNewObjectForEntityForName方法,請嘗試使用由xcdatamodeld創建的'addBObject:(B *)value'方法(檢查由數據模型創建的A.h文件中的正確名稱) – shinyuX

相關問題