我有一个视图控制器,它管理一个始终以编辑模式显示的视图。该视图本质上是一个表格视图,类似于 Apple 的联系人应用程序中的联系人详细信息。我的视图下的模型由一个 2 级对象图表示,该对象图由一个根实体组成 - 称之为它R
- 与子实体具有一对多关系C
。现在,R
是一个大对象(它有 20 多个属性,所有属性都是可编辑的,但不是强制性的)。默认情况下,R
有子对象n
(是一个可配置的值),但是可以通过我的编辑视图n
将子对象添加到/从集合中删除,并且也可以编辑子对象的属性。注意R
C
C
实体包括图像元数据的属性,因此在编辑时可能会选择图像并与模型相关联。
编辑R
及其子视图通过主表视图表单以及从我导航(来回)到的“辅助”视图执行,以便根据情况收集所需的信息。
我的问题是,在这种情况下您将如何实施“取消所有编辑”,即我应该如何隔离所有编辑以轻松恢复到编辑之前的状态?NSUndoManager
与我的主一起使用NSManagedObjectContext
?有单独NSManagedObjectContext
的编辑?每个人的权衡是什么?
我不在乎redo
。我正在寻找一种想法/解决方案,可以在编辑时使用的内存量与如果应用程序在编辑时中断时保存用户数据的能力之间取得平衡。
谢谢你的所有想法。