无法将parentContext添加到NSManagedObjectContext,上下文已经具有协调器

水晶

我有一个视图,可以从main检索保存的实体(Route *)NSManagedObjectContext我想将其导入到中tempContext按照Marcus Zarra的示例,我这样做:

    NSManagedObjectContext *moc = _route.managedObjectContext;
    NSManagedObjectID *routeId = [_route objectID];
    NSPersistentStoreCoordinator *psc = moc.persistentStoreCoordinator;
    self.tempContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
    [self.tempContext setPersistentStoreCoordinator:psc];
    NSManagedObject *localRoute = [self.tempContext objectWithID:routeId];
    [localRoute moToDictionary:localRoute];
    self.tempContext.parentContext = moc; // crashes here

一切都很好,直到我尝试设置parentContext我的tempContext到主MOC。我得到了错误:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Context already has a coordinator;  cannot replace.'

我了解它告诉我无法更改persistentStoreCoordinator但是我不确定为什么会告诉我这一点。当我设置一个断点时,tempContext与主Moc的内存地址不同。另外,self.tempContext.parentContext为零。所以我想如果它为nil,我可以将nil参数设置为moc,但是它会崩溃。有什么想法吗?提前致谢!

马丁·R

对于托管对象上下文,您可以

  • 要么设置持久性存储协调器,以获得具有相同存储的第二个独立MOC,
  • 或设置父级上下文以获取子级MOC,

但不是两者兼而有之。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法将新项目添加到Windows 7“新”上下文菜单中

将超时添加到异步上下文管理器

将子菜单添加到资源管理器上下文菜单

如何将程序添加到所有文件的上下文菜单?

如何将项目添加到“ Google Chrome浏览器标签”上下文菜单?

在Windows资源管理器中使用上下文菜单将后缀添加到文件

如何将单击侦听器或上下文菜单添加到 Vaadin 的网格列标题

如何将上下文菜单添加到带有Chrome扩展程序的浏览器操作中?

在实体框架中在运行时将新模型添加到现有上下文中

将所有对象添加到上下文后,是否应该调用context.SaveChanges()?

如何通过 PM 控制台将表添加到现有的 EF Core 3.0 上下文?

将实体添加到上下文时,将GUID保留为空

无法在Windows 10中添加到目录上下文菜单

步骤侦听器可将失败的步骤添加到执行上下文

将上下文管理器添加到单视图应用程序

要添加到浏览器上下文菜单吗?

在Spring中将侦听器添加到servlet上下文

将安全删除硬件选项添加到桌面右键单击上下文菜单中?

如何将项目添加到“新”上下文菜单?

将控件添加到Outlook 2013“内联响应”上下文功能区

如何以编程方式将LinearLayout对象添加到我的上下文中?

如何将属性添加到应用程序上下文

将程序的特定功能添加到Windows上下文菜单

将“使用Gimp编辑”添加到Windows上下文菜单

以编程方式将Bean添加到Spring应用程序上下文

如何防止反应上下文将重复项目添加到购物车

Android将项目添加到全局上下文菜单

将预构造的Bean添加到Spring应用程序上下文

以编程方式将Bean添加到Spring Web App上下文