【发布时间】:2016-11-10 13:34:39
【问题描述】:
我对父子上下文设置以及数据的行为方式几乎没有疑问。谁能建议一个链接,我可以在其中找到有关它们如何工作的正确解释。
几点和观察
- 父上下文充当子上下文的存储:- 但父上下文中的更改不会反映在子上下文中。
问题 1:如果父上下文充当子上下文的存储,那么为什么父上下文中的更改不会反映在子上下文中,而子上下文会获取它们。
观察:
- 在父级中插入:- 子级获取请求获取这些对象。
- 更新/删除父对象中的对象:- 然后获取请求不会获取更新的对象,而是为我们提供子上下文中的对象,因此如果我们需要更新的对象,我们必须重置上下文,但随后我们将丢失子上下文中的所有更改或刷新对象。
问题 2: 子级覆盖父级上下文值。因此,如果用户在父上下文中修改了某些内容,并且孩子也修改了相同的内容,那么用户的更新将丢失。在涉及到关系之前,这不是什么大问题。
假设实体A,B(A->>B)之间存在一对多关系。
父上下文:向实体 A 说 Child-1 插入一个新子项。
子上下文:删除实体 A 及其所有子项。
所以现在当子节点保存到父上下文时,它会删除实体 A 和它的旧子节点,新插入的 child-1 仍保留在上下文中,并且引用父节点为空。
我该如何解决这个问题?
【问题讨论】:
标签: ios core-data concurrency parent-child