我有一个与B有多对多关系的对象A.B有一个属性A,它是与A的NSSet的反向关系。
伪代码:
class A{ NSSet *bConnections; } class B{ A *aConnection; }
在模型中,我将关系设置为可选。对于A,关系被定义为多个,B处的连接的倒数和删除规则级联。
B定义为bConnection的可选反转,删除规则无效。
当我创建对象,并使用[aInstance setValue:setOfBs forKey:@"bConnections"]
将A的NSSet添加到A时,B中的反向关系不会自动设置。我究竟做错了什么?它不应该从Core Data自动更新吗?
对象包含:initWithEntity:entityDescription insertIntoManagedObjectContext:managedObjectContext
答案 0 :(得分:1)
我可能找到了解决方案;我确实更新了从A返回的现有NSSet以添加新的Bs。当我分配一个新的NSSet并添加对象时,引用似乎没问题。这些对象是从外部JSON服务创建的,我想我可以只更新A中现有的B组,但是后面的反向关系没有正确设置。
答案 1 :(得分:1)
您需要使用mutableSetValueForKey:
来获取关系的现有集合。然后,您可以修改该集合,并自动设置正确的键值观察方法,以便保持对象图形的完整性。