我想我可能在core data
運作的方式失去了一些東西,但我有兩個實體的關係:收集和項目(10個屬性)。集合具有多對多關係項目(不反過來,不對刪除進行操作,排序)。CoreData休息一對多時,分配給多個家長實體
如果我將NSManagedObject
項添加到不同的集合,有時先前創建的集合失去與其項目的關係。讓我通過使用SOMETIMES這個詞來解釋我的意思。
在不同的集合中有400個獨特的物品。我從web服務加載集合。並有2個獨立的電話:
1)第一次調用返回小集合(我們稱之爲集合A)的6個項目及其所有屬性(10)。
2)第二次調用返回400個項目的5個集合(每個集合具有不同順序的相同項目)。在400個項目中,還有6個以前返回(收集A是完整收集的子集)
第一個響應之後,所有數據都被解析並保存。第二次調用後,新的數據被解析並保存。如果事後我要求收集A - 它沒有任何項目(關係錯誤與它無關)。
PLOT TWIST:如果在解析每個新集合之前,我要求集合A的項目數 - 關係保持不變,並且所有項目都可用。
已經用了2天。不知道還有什麼要檢查的。上下文相同,上下文在添加每個新實體後保存。如前所述,Item對象沒有反向關係。
缺少什麼我在這裏?...
我認爲你是正確的 - 問題是缺少的反向關係。根據CoreData編程指南,「強烈建議您在兩個方向上建模關係,並適當指定反向關係。核心數據使用此信息確保對象圖形的一致性(請參閱處理關係和對象圖形完整性)「。 – pbasdf
感謝您輸入@pbasdf。看到核心數據只是失去了這種關係,實在是太奇怪了......有時候,我可以打破我的代碼,刪除簡單的日誌語句(除了獲取日誌所需的數據外,這些語句除了別的以外不做其他事情)。 –