0

假设我在父主队列并发类型上有一个对象,并且我更改了它的一个属性值。然后,在不保存的情况下,我对子私有队列类型执行一个获取请求,以获取包含该对象的数组。我遇到的问题是,有时我得到的对象没有包含在主线程上进行的未决更改,尽管它应该。

但是,如果我调用[childMOC refreshObject:object mergeChanges:YES];,我确实会收到待处理的更改。但是文档中的描述说这种方法

“更新托管对象的持久属性以使用持久存储中的最新值。

" 那么这些值不就是保存到磁盘的值,因此它不包括任何未决的更改吗?

我对这种方法的工作原理有点困惑..

4

1 回答 1

7

使用嵌套的托管对象上下文,子上下文将看不到直接对父上下文所做的任何更改。如果您想要最新的更改,您将始终需要在子上下文中刷新您的对象。

是的,刷新包括来自父上下文的未决更改。文档需要在这方面进行更新。

更改传播仅从子上下文自动(保存时)进行 -> 父上下文。

于 2012-06-29T07:44:26.243 回答