iOS Coredata回滚无法正常工作

时间:2012-09-03 11:28:43

标签: ios core-data nsmanagedobjectcontext rollback

在我的应用程序中,我正在关注CoreDataBooks以实现Core数据。我有一个项目列表,当用户选择任何项目时,详细信息屏幕会显示编辑选项。详细信息屏幕具有ManagedObjectContext的实例,该实例是列表中ManagedObjectContext实例的子代。 现在,当我在细节屏幕上编辑某些内容时,我正在更新从子MOC实例中获取的实体中的值。当我调用rollback child MOC时取消,它什么都不做。不确定为什么回滚不会将值恢复到上次保存的上一个值。

- (void)cancelAction:(id)sender
{
    _isEditing = NO;
    [_managedObjectContext rollback];
    [self configureNavBar];
    [table reloadData];
}

1 个答案:

答案 0 :(得分:1)

您可以检查您的MOC中是否设置了UndoManager,即使用UndoManager。

阅读此回复可能对此有所帮助:undo all changes made in the child view controller

但是如果您关注CoreDataBooks示例,则可以看到方法

(void)addViewController:(AddViewController *)controller didFinishWithSave:(BOOL)save

表示只有在设置了标志保存时,子视图控制器才会保存它的MOC,否则它将在父视图控制器上调用保存,从而回滚到存储在Parent&的数据中#39; s ManagedObject数据。