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