【发布时间】:2011-12-01 23:15:18
【问题描述】:
是否需要一个单独的 NSManagedObjectContext 来回滚用户不正确的 coredata 更改?
我在CoreDataBooks example 中注意到它使用了一个单独的 NSManagedObjectContext。想问的是,这是否是处理需求的唯一真正方法,如果不是,另一种方法是什么。
要求是:
- 允许用户开始更改页面上对象中的字段
- 这可能包括传递给单独的模态视图以帮助他们设置这些数据
- 提供 OK 或 CANCEL 是否重新进行更改
- 作为进行更改的一部分,您仍然继续使用 CoreData 托管对象(即不创建单独的一组对象/方法来处理此问题)
- 因此,如果您想坚持使用现有的核心数据对象,然后支持 OK 和 CANCEL 更改,那么通过单独的第二个 NSManagedObjectContext 实现此目的的唯一方法是什么?
示例摘录供参考
创建一个新书,一个 AddViewController 来管理添加 书,以及添加控制器要保留的新托管对象上下文 对图书所做的更改与应用程序的托管无关 对象上下文,直到书被保存。重要提示:没有必要 为此使用第二个上下文。你可以只使用现有的 上下文,这将简化一些代码——你不需要 例如,在保存后合并更改。然而,这个实现, 说明有时可能有用的模式(您想要 维护一组单独的编辑)。
【问题讨论】:
标签: iphone ios core-data nsmanagedobject nsmanagedobjectcontext