【发布时间】:2016-10-06 17:44:41
【问题描述】:
我使用NSManagedObjectContext 链来表示可以回滚/取消的视图和操作的层次结构。
这是一个例子:
假设我有以下结构:
- 客户端列表(主 NSManagedObjectContext)
- 客户端详细信息(DetailContext - Parent = MainContext)
- 客户杂货(GroceryContext - Parent = DetailContext)
- 杂货支付(PaymentContext - 父级 = GroceryContext)
这样,我可以导航到杂货付款,进行更改,并在必要时取消,对于所有其他级别都是一样的。由于执行保存会将更改向上移动。到目前为止,这正在按预期工作。
我想了解的是执行以下操作的好方法:
- 在列表中打开客户端;
- 打开杂货店;
- 打开杂货店付款记录
- 添加交易
问题是,该事务也需要保存在后端,并保存在本地主上下文中,因为无论我在工作流的其余部分做什么,该事务都已完成。
我一直在做的是,在进行事务的情况下,将调用一系列委托,直到作为所有父上下文的根级别,并保存事务。但我想知道是否有更好的方法来做到这一点。因为即使交易完成,我也可能想取消在此过程中进行的一些其他更改。但是所有这些上下文都需要有一个已保存的事务上下文的更新对象,因为这是最终的。
请不要附和客户杂货的实际用例,这只是为了解释上下文的层次结构。
谢谢
【问题讨论】:
标签: ios objective-c iphone core-data