ios - 如何将 "tell"管理它必须删除和/或插入的对象的父上下文?

标签 ios core-data concurrency nsmanagedobject nsmanagedobjectcontext

我在主队列中有一个父 NSmanagementObjectContext ,在私有(private)队列中有一个子 NSManagedObjectContext 。我将父上下文中的一组托管对象传递给它的子上下文。然后,子上下文从其父上下文中获得托管对象,然后插入新的托管对象。我在私有(private)队列中对子上下文中的所有托管对象进行一些处理,这些对象来自父对象和它自己的新对象,在过程结束时,我需要告诉父对象:

  • 它的哪些管理对象需要删除
  • 它的哪些托管对象需要替换为子节点中的新托管对象
  • child中的哪些managed objects需要插入到parent中

是否可以通过上下文之间的父/子关系来做到这一点?即使他们属于不同的队列?还是父子关系只适合对某些托管对象的属性进行更改,而不适合对托管对象进行删除和插入?

如果无法通过父/子关系来管理这种情况,应该采用什么方法?

提前致谢

编辑:我找到的示例只是使用子上下文来编辑父对象的托管对象,然后在版本结束时将更改应用到父对象。所以我不确定是否可以使用子上下文在父上下文中删除或插入对象。

最佳答案

当子上下文调用save() 时,更改会被推送到父上下文。这意味着,更新父上下文的整个对象图以反射(reflect)子上下文的状态。

因此您无需执行任何操作。删除的对象会消失,添加的对象会在,编辑的对象会更新。

关于ios - 如何将 "tell"管理它必须删除和/或插入的对象的父上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810988/

相关文章:

ios - 如何在 Swift 4 中使用 Swift 3 的过时语法

iphone - 我的数据库数据在哪里(核心数据,iOS)

ios - 从集合中确定最近位置的快速/有效方法

android - 将 Adob​​e Air 移动项目中的本地 sqlite 数据库备份到云端

ios - swift 2.0 : Cannot convert NSDateComponents to NSCalendarUnit

ios - 在 Objective-C 代码中解密河豚的值

iphone - 核心数据属性类型列表?

mysql - MySQL 上的 join insert/update 是原子操作吗?

java - 在 EMF 模型中使用 Java 关键字 volatile

c++ - std::promise::set_value() 和 std::future::wait() 是否提供内存围栏?