核心数据使用与数据库中现有对象的关系来保存对象

时间:2011-09-30 20:55:11

标签: iphone objective-c core-data one-to-many

我正在尝试将新对象保存到我的上下文中,该对象将具有与数据库中已有对象的外键引用(多对多关系)。

如何设置此新对象的关系以将其保存到数据库?我尝试获取该对象,然后在关系中设置它,但是在保存为null的上下文时会导致错误。

我还尝试将其重新创建为一个新对象,认为核心数据不会创建新对象,只是添加关系,但它确实创建了新对象。

如何保存此对象?

1 个答案:

答案 0 :(得分:1)

您必须在新对象的关系中设置对象,然后将为您设置反向关系。

因此,您需要弄清楚导致您看到错误的原因。

在从mogenerator生成的CoreData对象中,将单个对象添加到关系集的代码从对象属性访问可变集:

NSMutableSet *result = [self mutableSetValueForKey:@"rounds"];

然后,您可以将现有对象添加到该集合,并尝试保存新对象。

Alternatley,任何ManagedObject的CoreData都会生成一个方法:

- (void)addRoundsObject:(Round*)value_;

如果您使用该方法,它还应该正确添加对象。