iOS Coredata回滚不起作用

问题描述 投票:0回答:1

在我的应用中,我正在跟踪CoreDataBooks以实现Core数据。我有一个项目列表,当用户选择任何项目时,详细信息屏幕会出现编辑选项。详细信息屏幕上有ManagedObjectContext实例,该实例是ManagedObjectContext实例的子级。现在,当我在详细信息屏幕上编辑某些内容时,我正在更新从子MOC实例获取的实体中的值。在取消时,当我调用回滚子MOC时,它什么也不做。不知道为什么回滚不能将值恢复到上次保存的值。

- (void)cancelAction:(id)sender
{
    _isEditing = NO;
    [_managedObjectContext rollback];
    [self configureNavBar];
    [table reloadData];
}
ios core-data nsmanagedobjectcontext rollback
1个回答
1
投票

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

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

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

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

这表明子级视图控制器仅在设置了标志保存时才会保存其MOC,否则它将在父级的视图控制器上调用save,从而回滚到父级的ManagedObject数据中存储的数据。

© www.soinside.com 2019 - 2024. All rights reserved.