gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:23:34 24 4
gpt4 key购买 nike

我正在尝试使用 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 是否是正确的方法,但感觉在下一个 View Controller 中注入(inject) currentEntity 是正确的方法。

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

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

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

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

我已经接近了,但我不断收到未关联的新对象(应该是一对多)

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

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

谢谢,

最佳答案

你做的一切都是对的。进入新的 View Controller 后,只需像插入新实体和关系时那样继续操作即可。毕竟,您指的是相同托管对象上下文。

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

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

“SubEntity”类的新对象现在关联到 rootObject

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com