在什么情况下,我需要调用NSManagedObjectContext的-processPendingChanges方法?
我曾两次使用-processPendingChanges
,这与撤销分组和暂时禁用撤销有关。
例如,我想对所有涉及特定项目删除的Core Data操作进行分组(可能会导致其他项目的删除或数据模型的其他更改),因此我使用了以下代码:
[[[targetOperationController managedObjectContext] undoManager] beginUndoGrouping];
[targetOperationController deleteSelectedOperation];
[[targetOperationController managedObjectContext] processPendingChanges];
[[[targetOperationController managedObjectContext] undoManager] endUndoGrouping];
-deleteSelectedOperation
方法触发的所有数据模型更改都被分组在一起,我使用-processPendingChanges
来确保它们都在撤销分组块中注册。-disableUndoRegistration
和-enableUndoRegistration
替换撤销分组来执行类似的操作,以忽略所有数据模型更改以进行撤销。
NSManagedObjectContextObjectsDidChange
通知,因为当使用performAndWait()
时,您不会自动收到该通知。 - Michael TsaiNSManagedObjectContextObjectsDidChange
通知,因为使用performAndWait()
时不会自动获取该通知。 - undefined