iOS Coredata 回滚不起作用

标签 ios core-data nsmanagedobjectcontext rollback

在我的应用程序中,我遵循 CoreDataBooks 来实现核心数据。我有一个项目列表,当用户选择任何项目时,会出现一个带有编辑选项的详细信息屏幕。详细信息屏幕具有 ManagedObjectContext 实例,它是列表中 ManagedObjectContext 实例的子级。 现在,当我在详细信息屏幕上编辑某些内容时,我正在更新从子 MOC 实例获取的实体中的值。当我调用回滚子 MOC 时取消,它什么也不做。不确定为什么回滚没有将值恢复到上次保存的值。

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

最佳答案

您能否检查一下您的 MOC 中是否设置了 UndoManager,即您是否正在使用 UndoManager。

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

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

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

这表明只有当设置了标志 save 时, subview Controller 才会保存其 MOC,否则它将在父 View Controller 上调用 save,从而回滚到存储在父 View 的 ManagedObject 数据中的数据。

关于iOS Coredata 回滚不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12246952/

相关文章:

ios - 如何在不重启模拟器的情况下将项目添加到 TableView

ios - 在 Xcode 4 中编译时出现错误信息

ios - NSManagedObjectContext -保存: causing SIGSEGV crash

ios - 在 iOS 5 上实现快速高效的核心数据导入

ios - 将 swift 4 字符串转换为 c unsigned char *

ios - NSProcessInfo physicalMemory 值的含义

ios - 如何自动生成日期属性为 Date 而不是 NSDate 的 NSManagedObject 子类?

ios - 多个数据模型的多个 ObjectContext?

ios - Core Data merge By Property Store Trump Merge Policy Type,什么意思?

iphone - insertNewObjectForEntityForName : inManagedObjectContext: returning NSNumber bug?