- ios/
- Ios 如何使子MOC看到父MOC的更改以及如何解决它们之间的冲突?
Ios 如何使子MOC看到父MOC的更改以及如何解决它们之间的冲突?
Ios 如何使子MOC看到父MOC的更改以及如何解决它们之间的冲突?,ios,core-data,Ios,Core Data,新的基于队列的MOC和iOS5中引入的嵌套MOC似乎是一个更简单、更干净的并发模型,所以我现在很高兴地使用它。但有几件事我并不清楚:
子MOC是否自动提取父MOC的更改?还是我仍然需要手动协调它们?如果是后者,如何手动刷新子级以合并父级更改?
(我知道事情是如何运作的——父MOC在子MOC保存时从子MOC获得更改。)
如果子MOC中的更改与父MOC中的更改之间存在冲突,则在保存子MOC时会发生什么情况?mergePolicy是否也负责解决子MOC和父MOC之间的冲突
是和否,取决于您对“拉动pa
新的基于队列的MOC和iOS5中引入的嵌套MOC似乎是一个更简单、更干净的并发模型,所以我现在很高兴地使用它。但有几件事我并不清楚:
子MOC是否自动提取父MOC的更改?还是我仍然需要手动协调它们?如果是后者,如何手动刷新子级以合并父级更改?
(我知道事情是如何运作的——父MOC在子MOC保存时从子MOC获得更改。)
如果子MOC中的更改与父MOC中的更改之间存在冲突,则在保存子MOC时会发生什么情况?mergePolicy
是否也负责解决子MOC和父MOC之间的冲突
是和否,取决于您对“拉动parentMOCs自动更改”的定义。如果您的意思是,下一次孩子抓取时,它将获得更新的数据,那么是的。如果你的意思是对象会自动改变,那么不会。原因是MOC是一个草稿行,如果你不改变它,它就不会改变
是的,如果要从多个位置更改相同的对象/关系,则必须解决合并冲突。这是一个复杂的问题,用一般的答案无法充分回答。您应该真正阅读核心数据编程指南,特别是关于变更管理的部分
编辑
假设我在子MOC中持有对象A,并将关系B添加到父MOC中的A。如果我访问A.B,我会得到什么?无如果发生这种情况,我该怎么办
我想在儿童MOC中看到A.B?使用refreshObject:mergeChanges:to
刷新,或使用objectWithID:再次获取?有没有办法去
刷新整个儿童MOC?我有一个非常复杂的对象网络
child MOC和我不想(或只是不能)刷新/重新获取每个
对象一个接一个
通过子MOC查看对象A时,在从子MOC重新蚀刻之前,您不会看到父MOC中的更改。如果您想查看父对象中的内容,可以通过MOC上的另一个获取,或者通过任何方法从存储中获取apecific对象。但是,我必须强调,您需要阅读有关每次提取的文档,因为它们可能有副作用。确切答案取决于您选择的方法
通常,如果您正在进行持续更改,您希望在子级中进行更改,并将其推送到父级,或者处理DidChange通知,使更改看起来“自动”
合并政策在这里有效吗
对
同样,在这里我能给你的最好答案是指向“核心数据编程指南”。请特别注意以下两个部分:
1。假设我在子MOC中持有对象A,并将关系B添加到父MOC中的A。如果我访问A.B,我会得到什么?无如果我想在儿童MOC中看到A.B,我该怎么办?使用refreshObject:mergeChanges:
刷新,或使用objectWithID:
再次获取?有没有办法刷新整个儿童MOC?我在childmoc中有一个非常复杂的对象网络,我不想(或者只是不能)逐个刷新/重新获取每个对象。