CoreData父子上下文冲突管理

时间:2016-09-21 12:31:25

标签: ios core-data concurrency parent-child nsmanagedobjectcontext

核心数据应用,即CloudKit的同步用户数据。

我们有两个核心数据上下文

  1. 主要上下文: - UI(插入,更新,从用户删除)
  2. 子上下文: - 从云套件中获取更改并完成后 将更改保存到主要上下文。
  3. 问题

    由于其父子设置,来自父级的更改不会反映在子级中。因此,如果父级上下文得到更新,孩子正在将更改同步到CloudKit,那么孩子就不会知道这些更改。

    如果用户修改了与下面相同的记录,则说儿童上下文正在尝试将记录A上传到CloudKit

    • 用户更新: - 当孩子保存记录时,新的更新将丢失 父母。

    • 用户删除: - (我们只是将其标记为已删除)子项重新保存子项,因为它没有将属性标记为已删除。

      问题

      1. 孩子能以某种方式知道父更新吗? 我可以在保存之前刷新对象吗?

      2. 在Parent-Child Setup中,child是否始终覆盖父更改而不会发生合并冲突?

2 个答案:

答案 0 :(得分:1)

  1. 设置上下文的automaticMergesChangesFromParent属性。
  2. 选择合适的合并政策。

答案 1 :(得分:-2)

看看本教程可能有所帮助。

Multiple Context swift tutorial