ios - 核心数据对象注入(inject)(带有依赖项) Storyboard

标签 ios core-data storyboard

我正在尝试使用 Segues 将核心数据 MOC 和实体传递给其他 View Controller 。

所以我正在使用prepareForSegue方法并执行类似的操作

SecondViewController *svc = (SecondViewController *)[segue destinationViewController];

//passing the current managed object context to the other view controller
svc.managedObjectContext = managedObjectContext

然后我希望将 currentEntity 传递给同一个 View Controller

//rootEntity is -- TheManagedObject * rootEntity in the second view controller
svc.rootEntity = currentEntity

我不确定上面的 svc.rootEntity 是否是正确的方法,但感觉是将 currentEntity 注入(inject)下一个 View Controller 的正确方法。

在第二个 View Controller 中,我想根据上面的 rootEntity 注入(inject)为实体插入一个新对象。

我知道我通常会通过这样做创建一个新的托管对象:

NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"TheNewObject" in       ManagedObjectContext:managedObjectContext //MOC injected from the First View Controller

我的问题是,我想要执行上面的 newObject,但我希望它依赖于(关系)到第一个传递的实体(上面的 rootEntity)。

我已经接近了,但我不断获得不关联的 NewObjects(应该是一对多)

下一步将重复上述操作,并根据第二个 View Controller 中的 NewObject 在下一个 View Controller 中插入另一个级别。

我读过 Zarra 的书和其他一些书,但他们都使用似乎不适用于 segues 的 init 方法。

谢谢

最佳答案

你做的一切都是正确的。一旦进入新的 View Controller ,只需像最初插入新实体和关系时一样继续即可。毕竟,您引用的是相同托管对象上下文。

例如,如果您想插入一个新的关系实体,您可以这样做:

NSManagedObject *newObject = [NSEntityDescription
   insertNewObjectForEntityForName:@"SubEntity" 
   inManagedObjectContext:managedObjectContext];
newObject.rootEntity = self.rootEntity;

“SubEntity”类型的 newObject 现在与 rootObject 关联。

关于ios - 核心数据对象注入(inject)(带有依赖项) Storyboard ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179654/

相关文章:

objective-c - 分发模式下无法推送

ios - CoreData 在 NSFetchRequest 找到新对象之前需要一些时间

iOS ScrollView 需要约束 y 位置或高度

ios - 如何从 superView 中删除 View?

ios - 切换选项卡时退出 View

c# - 可展开的 ListViewItem

c++ - NSPropertyListSerialization propertyListWithData 因二进制 plist 而失败

ios - 我们可以通过 Apple 商务管理分发 Enterprise ios 应用程序吗?

ios - 如何刷新我在 iOS 中从 google oauth 2.0 获得的 token

macos - 如何将基于文档的核心数据应用程序的保存对话框的文件格式预设为sqlite?