似乎新的基于MOC的队列与iOS 5中引入的嵌套MOC一起作为一种更简单,更清晰的并发模型,所以我现在很乐意使用它。但有几件事我不清楚:
mergePolicy
是否也有责任解决儿童MOC与家长MOC之间的冲突?答案 0 :(得分:5)
是和否,取决于您对“拉动parentMOCs自动更改”的定义。如果您的意思是,下次儿童取出时,它将获得更新的数据,然后是。如果你的意思是对象会自动改变,那么没有。原因是MOC是一个暂存器,如果不改变它就不会改变它。
是的,如果要从多个位置更改相同的对象/关系,则必须解决合并冲突。这是一个复杂的问题,在SO答案中无法充分回答。您应该阅读“核心数据编程指南”,尤其是“变更管理”部分。
修改强>
- 假设我在子MOC中持有对象A并在父MOC中向A添加关系B.如果我访问A.B,我会得到什么?零?如果,我该怎么办? 我想在孩子MOC中看到A.B?使用refreshObject:mergeChanges:to 刷新A,或使用objectWithID:再次获取A?有什么办法吗? 刷新整个孩子的MOC?我有一个非常复杂的对象网络 孩子MOC,我不想(或根本不能)刷新/重新获取每一个 对象一个接一个。
醇>
通过子MOC查看对象A时,在从子MOC重新提取之前,您不会看到父MOC中的更改。如果您想查看父级中的内容,可以通过MOC上的其他提取或通过任何方法从商店获取特定对象来实现。但是,我必须强调您需要阅读有关每次提取的文档,因为它们可能有副作用。确切的答案取决于您选择的方法。
通常,如果您正在进行持续更改,您希望在子项中进行更改,并将其推送到父项,或者处理DidChange通知以使更改看起来“自动”。
- mergePolicy在这里工作吗?
醇>
是
同样,我可以在这里给你的最佳答案是指向“核心数据编程指南”。特别注意这两个部分: