从多个核心数据中还原一个被提取的实体 - 核心数据

问题描述:

此问题共同影响我对如何使用核心数据撤消管理器以及如何在编辑完成之前将NSManagedObject恢复到其状态的理解。从多个核心数据中还原一个被提取的实体 - 核心数据

我只是在学习Core Data的方法。我有我的NSManagedObject类与他们的动态访问器设置。我执行一个返回多个NSManagedObject实体结果的提取。来自这些实体结果(名字,姓氏)的每一个内容都被放入一个表格视图中,然后用户从表格中选取一个作为详细视图然后编辑。

详细视图控制器接收指向所选NSManagedObject实体的指针。当用户编辑这些字段时,NSManagedObject实体中相应的属性值将被更新。这似乎是管理这些变化的最干净的方式。

现在,而不是使用保存提交的变化,我想提供一个取消编辑功能,可以回滚到什么是该实体的数据基础。我真的只想恢复一个实体而不执行整个重新读取。

我试过回滚,我尝试NSUndoManager(与beginUndoGrouping和endUndoGrouping),这是行不通的。我不认为我理解回滚是真的应该做什么。

但在任何情况下,我还是想恢复只是单个实体的属性值(取偷懒的办法,只取所需要的,这是一个实体),使我的详细视图控制器可以补充其观点,与正确的信息。现在它使用NSManagedObject实体值,其中包含已被取消的编辑值。

我想我可以通过创建一个NSManagedObject的副本来启动编辑过程。如果按下取消编辑按钮,我可以将其复制回原来的位置。 (我甚至可能能够仅仅通过移动指针替换原有的副本。但由于指针实际上已通过若干个对象过去了,我不知道如何管理副本的保留数。)

有没有人有任何其他建议?

感谢

使用rollback要做到你想要什么,我不知道它做什么不是。这可能是一个实现细节错误。

你可以找到具体的管理对象/ S是被更新,但尚未通过调用上下文的updatedObjects保存。