2014-03-03 116 views
0

我正在使用coredata通過Web服務在我的應用程序中保存服務器數據,並且將關係作爲對象存儲到實體中。實體更新後,Coredata關係中斷

我有很多實體,例如「Inspirations」和「Products」,兩者都是相互關聯的。每當記錄在第三個實體「過濾器」中更新時,我遇到問題,那麼實體的關係破裂,我無法對實體應用過濾器。

[object addRelatedInspirationsObject:related]; 

這就是我如何保存關係。我無法弄清楚爲什麼一旦實體更新與實體沒有直接聯繫,關係就會被破壞。

還有一件事,如果我獲取並保存任何一個實體的數據,如「Inspirations」,那麼所有的關係開始再次工作。

+0

從您提供的代碼應該工作,但從您的問題,它不清楚你在過濾器實體做什麼。你可以提供更多的代碼和解釋,否則可能會很難。 – Volker

回答

0

你的代碼應該工作。這裏有兩件事你需要檢查:

  • 確保related不是nil當你調用你的方法。
  • 請確保您在有效的託管對象上下文上調用save
+0

感謝您的建議。它運行良好。 –

0

從你的問題看來,實體之間似乎有一對多的關係。通過您提供的代碼,每件事情都應該正常工作。只要確保您使用的是像object.filter(或obj1.obj2.filter)這樣的關係中的Filter對象,而不是通過Filter實體上的直接NSPredicate對其進行訪問並更新它。如果您正在使用FRC,則可能還需要針對父實體生成一個錯誤,以獲取您的UI更新。