在什么情况下我想调用 NSManagedObjectContext 的 -processPendingChanges 方法?

3
在什么情况下,我需要调用NSManagedObjectContext的-processPendingChanges方法?
1个回答

3

我曾两次使用-processPendingChanges,这与撤销分组和暂时禁用撤销有关。

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

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

为了确保由-deleteSelectedOperation方法触发的所有数据模型更改都被分组在一起,我使用-processPendingChanges来确保它们都在撤销分组块中注册。
您可以通过使用-disableUndoRegistration-enableUndoRegistration替换撤销分组来执行类似的操作,以忽略所有数据模型更改以进行撤销。

1
此外,对于在后台队列上运行的上下文,它控制着何时发布NSManagedObjectContextObjectsDidChange通知,因为当使用performAndWait()时,您不会自动收到该通知。 - Michael Tsai
1
另外,对于在后台队列上运行的上下文,它控制着何时发布NSManagedObjectContextObjectsDidChange通知,因为使用performAndWait()时不会自动获取该通知。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接