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