核心数据反向关系未设置

时间:2010-09-06 12:13:55

标签: iphone objective-c core-data

我有一个与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

2 个答案:

答案 0 :(得分:1)

我可能找到了解决方案;我确实更新了从A返回的现有NSSet以添加新的Bs。当我分配一个新的NSSet并添加对象时,引用似乎没问题。这些对象是从外部JSON服务创建的,我想我可以只更新A中现有的B组,但是后面的反向关系没有正确设置。

答案 1 :(得分:1)

您需要使用mutableSetValueForKey:来获取关系的现有集合。然后,您可以修改该集合,并自动设置正确的键值观察方法,以便保持对象图形的完整性。

相关问题