如何在 2 个 NSManagedObjectContext 之间复制对象

Posted

技术标签:

【中文标题】如何在 2 个 NSManagedObjectContext 之间复制对象【英文标题】:How to copy an object between 2 NSManagedObjectContext 【发布时间】:2012-04-02 17:03:34 【问题描述】:

如何将NSManagedObject 从一个NSManagedObjectContext 复制到另一个?

我有 2 个不同的 NSManagedObjectContext,每个都有自己的 NSManagedObjectModel 和单独的持久存储。 2 个 MOC 中的每一个都有一个名为 Observation 的实体,它与同一个观察类绑定。

我想将对象从一个 MOC 复制到另一个。由于对象属于同一类,我只想从一个 MOC 中获取一个对象并将其保存到另一个。这可能吗,还是我需要在目标 MOC 中插入一个新对象,然后一次设置一个属性?

【问题讨论】:

您是否尝试使用一个 MOC 使内容出现在两个不同的视图中?如果是这样,那么继续在两个类中使用相同的 fetchresult 控制器/moc,它将显示在两个视图中,但一个 moc 中。 不,实际上是将对象从一个 MOC 复制到另一个 MOC,完全独立于任何视图。 【参考方案1】:

您需要复制一个对象并将一个新对象插入到另一个托管对象上下文中。很可能您必须一一复制属性值才能执行此操作。

原因是所有这些对象都有不透明的唯一 ID,所以你不能只把它从一个上下文带到另一个上下文。

【讨论】:

这是否意味着我应该复制所有属性,而不是 id? 除非它是您自己的类似 id 的属性。不要不要复制 ObjectID。

以上是关于如何在 2 个 NSManagedObjectContext 之间复制对象的主要内容,如果未能解决你的问题,请参考以下文章

多个 NSPersistentStoreCoordinator 实例可以连接到同一个底层 SQLite 持久存储吗?

如何在 PHP 中从具有 2 个计数的数组创建 2 个集合?

如何在 2 个不同可用区的 2 个 ec2 实例之间分配 2 个任务?

如何在 python 中使用 pyqt5 显示 2 个按钮和 2 个标签?

如何在 2 个 livewire 文件中定义 2 个 alpines 组件

如何在同一行布局 2 个 TextView(左侧 1 个,右侧 1 个)和 SeekBar