-setPropagatesDeletesAtEndOfEvent:实际上做了什么?

时间:2010-06-11 11:07:55

标签: iphone core-data

让我试一试:如果我没有设置它,那么默认值为YES。因此,当我从上下文中删除托管对象时,上下文会立即将此传播到持久性存储,以便对象消失?

当我将此设置为NO时,只有在调用-save时才会从持久存储中删除对象?

这是真的吗?我的意思是:如果它是真的,那么默认行为是,一旦你调用上下文删除一个对象,该对象就消失了。让我们假设您没有使用撤消管理器。所以......走了对?无法回滚吗?或者它仍然可以通过回滚恢复?

1 个答案:

答案 0 :(得分:2)

它控制是否在更改事件时传播删除,即在didChange...方法调用(显式或合成)之后传播。

据我所知,这只影响内存中对象的标记,标记它们是否被删除。它仅影响上下文管理内存中对象的方式,而不影响上下文如何管理磁盘删除。设置为YES时,它会使上下文将对象标记为要删除的对象,并将其视为从对象图中删除。但是,撤消将反转标志,就像您已直接删除该对象一样。

这个标志是可用的,因为有时甚至在删除或级联关系结束后你需要对象暂停一段时间。否则上下文将“删除”对象返回到下一次保存的点。

这是一项高级功能,很少使用。