我想在哪些情况下调用NSManagedObjectContext的-processPendingChanges?
答案 0 :(得分:2)
我使用-processPendingChanges
的两个案例涉及撤消分组和临时禁用撤消。
例如,我想对涉及删除特定项目的所有Core Data操作进行分组(可能导致删除其他项目或对数据模型进行其他更改),因此我使用了以下代码:
[[[targetOperationController managedObjectContext] undoManager] beginUndoGrouping];
[targetOperationController deleteSelectedOperation];
[[targetOperationController managedObjectContext] processPendingChanges];
[[[targetOperationController managedObjectContext] undoManager] endUndoGrouping];
为了保证将-deleteSelectedOperation
方法中的操作触发的所有数据模型更改组合在一起,我使用-processPendingChanges
确保它们都已在撤消分组块中注册。< / p>
您可以执行类似操作,通过将撤消分组替换为-disableUndoRegistration
和-enableUndoRegistration
来忽略所有数据模型更改以进行撤消。