在哪种情况下我想调用NSManagedObjectContext的-processPendingChanges?

时间:2010-06-10 15:58:28

标签: iphone core-data

我想在哪些情况下调用NSManagedObjectContext的-processPendingChanges?

1 个答案:

答案 0 :(得分:2)

我使用-processPendingChanges的两个案例涉及撤消分组和临时禁用撤消。

例如,我想对涉及删除特定项目的所有Core Data操作进行分组(可能导致删除其他项目或对数据模型进行其他更改),因此我使用了以下代码:

[[[targetOperationController managedObjectContext] undoManager] beginUndoGrouping];
[targetOperationController deleteSelectedOperation];
[[targetOperationController managedObjectContext] processPendingChanges];
[[[targetOperationController managedObjectContext] undoManager] endUndoGrouping];

为了保证将-deleteSelectedOperation方法中的操作触发的所有数据模型更改组合在一起,我使用-processPendingChanges确保它们都已在撤消分组块中注册。< / p>

您可以执行类似操作,通过将撤消分组替换为-disableUndoRegistration-enableUndoRegistration来忽略所有数据模型更改以进行撤消。