2010-09-06 95 views
3

我有一個對象A與B的多對多關係。B有一個屬性A,它與A的NSSet成反比關係。核心數據反向關係沒有得到設置

僞代碼:

 
class A{ 
    NSSet *bConnections; 
} 

class B{ 
    A *aConnection; 
} 

在模型中我已經建立了關係爲可選。對於A,關係定義爲to-many,與b處的aConnection相反並刪除規則級聯。

B被定義爲可選的,bConnection和delete規則的取反。

當我創建對象,並添加B的NSSet與A與[aInstance setValue:setOfBs forKey:@"bConnections"] B中的反比關係沒有自動設置。我究竟做錯了什麼?不應該從Core Data自動更新嗎?

中的對象與inited:initWithEntity:entityDescription insertIntoManagedObjectContext:managedObjectContext

回答

1

您需要使用mutableSetValueForKey:來獲取關係的現有集合。然後修改該集合並自動設置適當的鍵值觀察方法,以保持對象圖的完整性。

1

我可能已經找到了解決辦法;我更新了從A返回的現有NSSet以添加新的Bs。當我分配一個新的NSSet並添加對象時,引用似乎沒有問題。這些對象是從外部JSON服務創建的,我想我可以只更新A中現有的Bs集,但是反向關係設置不正確。