添加与未保存的NSManagedObject的关系?

时间:2012-02-03 03:50:20

标签: iphone ios core-data nsmanagedobject

NSManagedObject *parent = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:self.managedObjectContext];
NSManagedObject *child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:self.managedObjectContext];
[child setValue:parent forKey:@"parent"];

这似乎对我不起作用,但我可以这样做:

[child setValue:"John" forKey:@"name"];

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

如果已在ManagedObjectModel中定义了关系,则可以使用

[parent setValue:child forKey:@"childObject"];

此代码示例假定您的Entity Parent具有名为childObject的关系属性集。

enter image description here

使用。 NSManagedObject属性的访问器,您需要将其子类化。 选择您的实体,然后从编辑器菜单中单击创建NSManagedObject子类

EditorMenu

然后,不要将对象创建为NSManagedObjects,而是将它们创建为父类和子类

#import "Parent.h"
#import "Child" 
Parent *parent = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:self.managedObjectContext];
Child *child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:self.managedObjectContext];
parent.childObj = child;