iOS:CoreData关系和临时对象

iOS:CoreData关系和临时对象,ios,objective-c,core-data,Ios,Objective C,Core Data,如果对象仍然只是临时的,尚未持久化,是否设置了NSManagedObject之间的关系?在我的应用程序中,在对具有一对多关系的临时NSManagedObject使用addObject之后,似乎没有设置关系 编辑:用于将对象添加到关系的代码 Child* child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:moc]; [child setName:nameTextF

如果对象仍然只是临时的,尚未持久化,是否设置了NSManagedObject之间的关系?在我的应用程序中,在对具有一对多关系的临时NSManagedObject使用addObject之后,似乎没有设置关系

编辑:用于将对象添加到关系的代码

Child* child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:moc];
[child setName:nameTextField.text];
[parent addChildObject:child];

简单的回答是:是的。对未保存的上下文所做的所有更改都会按预期进行记录。一旦保存,它们将被持久化

假设存在一对多的关系,则更容易编写注释

child.parent = parent;

如果不保存上下文,更改将丢失。检查您的
parent
是否不是
nil
,并在上下文无效之前及时保存(例如,如果您取消分配保存上下文的视图控制器)

显示创建对象和设置关系内容的代码。谢谢,不过我也试过了。结果是一样的。即使在显式声明child.parent=parent之后,上下文中的子级的父级也为nil。父对象和子对象都在同一managedObjectContext中,但它们之间根本没有关系……您确定您的MOC不是nil吗?如上所述,您应该逐步检查代码并检查父对象和上下文的
nil
。还有,你可以做一个保存,看看它是否持续。我是个白痴。上下文为零,但将父对象传递给子对象的ViewController时出现了问题。我有InterfaceBuilders模态动作和我自己的动作,其中父对象被传递给按钮,只有模态动作被调用,这样父对象永远不会被传递,而子对象。父对象将被赋予一个零值…应该已经看到了…谢谢大家