gpt4 book ai didi

ios - CoreData 父子上下文冲突管理

转载 作者:行者123 更新时间:2023-12-01 15:50:41 30 4
gpt4 key购买 nike

核心数据应用程序,从 CloudKit 同步用户数据。

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

  1. 主要上下文:- UI(从用户插入、更新、删除)
  2. 子上下文:- 从云工具包中获取更改并完成后将更改保存到主上下文。

问题:

由于它是父子设置,因此父项的更改不会反射(reflect)在子项中。因此,当子级同步更改到 CloudKit 时,如果父上下文得到更新,则子级不会意识到该更改。

假设子上下文正在尝试将记录 A 上传到 CloudKit,同时如果用户修改了如下相同的记录

  • 用户更新:- 当 child 保存记录时,新的更新会丢失给 parent 。

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

    问题:

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

    2. 在父子设置中,子项是否总是覆盖父项更改而不会发生合并冲突?

最佳答案

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

仅供引用,父/子上下文不适用于此,它们用于创建/更新屏幕,用户所做的更改可以在其中取消和丢弃,而只留下主上下文。对于网络同步,您应该使用与持久存储关联的后台上下文。请参阅 NSPersistentContainer newBackgroundContext

关于ios - CoreData 父子上下文冲突管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39616621/

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