refreshObject如何在嵌套的托管对象上下文中工作?

时间:2012-06-29 05:24:30

标签: iphone objective-c ios core-data

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

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

  

“更新托管对象的持久属性以使用   来自持久性商店的最新值。

“这些值不会是保存到磁盘的值,因此它不会包含任何挂起的更改吗?

我对这种方法的运作方式感到有些困惑。

1 个答案:

答案 0 :(得分:6)

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

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

更改传播仅在儿童时自动(保存时) - >父母背景。