撤消视图控制器中所做的所有更改

是否有可能撤消视图控制器中所做的所有更改,而不影响在其父视图控制器中所做的更改? 顺便说一句。 它们具有相同的managedObjectContext。 PS。 我有两个实体A和B. A与B具有多对多关系。视图控制器VCA用于在A中执行一些更改。视图控制器VCB用于在B中执行一些更改。VCA是VCB的父视图控制器。

不需要创build新的上下文。 当你离开子视图控制器时,你可以select任何一个

[managedObjectContext save:&error]; 

要么

 [managedObjectContext rollback]; 

在后一种情况下,所有新的实体实例,数据修改等都将被丢弃。

您应该为子视图控制器创build新的NSManagedObjectContext并对其进行撤销。 NSManagedObjectContext非常轻巧,并且不会花费太多。