我在Core Data圖中有一對多的關係,我試圖理解使用CoreDataGeneratedAccessors方法和簡單賦值來改變關係的區別。例如,Core Data Programming Guide有一個部門和員工示例。在那個例子中,他們使用CoreDataGeneratedAccessors聘用和解僱員工:核心數據CoreDataGeneratedAccessors與簡單賦值
[aDepartment addEmployeesObject:newEmployee];
[aDepartment removeEmployeesObject:firedEmployee];
他們沒有定義的反比關係,但說「部門」是反比關係,以「僱員」。下面的話是否應該完成同樣的事情?
newEmployee.department = aDepartment
firedEmployee.department = nil;
根據核心數據編程指南的Manipulating Relationships and Object Graph Integrity章節,後面的例子應該自動修復的所有關係,以保持一致性圖。如果是這種情況,當存在反向關係時,是否有任何理由使用CoreDataGeneratedAccessors?使用CoreDataGeneratedAccessors是否在反向關係上保持圖形一致性?
Martin-感謝您的回覆。我有一種情況,我可以使用[aDepartment addEmployeesObject:newEmployee]一次,但是應用程序內的後續調用(不管它是否在另一個新的員工上)不會更新。但是,用newEmployee.department = aDepartment替換它始終有效。這兩個電話的行爲似乎不一致,所以我感到困惑,他們應該做同樣的事情。想法? – chris 2010-09-13 17:10:42
@chris - 這聽起來好像你在Department實體和Employee實體之間沒有反向關係。 – TechZen 2010-09-14 12:28:06
在某些特殊情況下,當某些核心數據更改處理和觀察代碼修改關係被觸發時,我只會遇到這種行爲。(這是我的代碼的錯誤) – 2010-09-15 05:32:11