我是否需要多个上下文来更新独立对象?

时间:2017-01-28 21:21:28

标签: core-data save nsmanagedobjectcontext rollback

我有一个视图控制器,它可以更新从前面的表视图中选择的单个托管对象(类型A)。但是,VC上有一个按钮,用于加载另一个视图控制器以更新第二个管理对象(类型B)。两个视图控制器都以正常方式保存和取消按钮。

我的要求是我可以提交(保存上下文)对B的更改并解除VC以继续编辑为A. A更改可能会被保存或取消但我希望B保持更改。

从概念上讲,这似乎需要同一级别的独立背景。即我不能为B使用子上下文,因为如果A更新被取消,这些更改仍然会被回滚。

我可以创建两个主要上下文,还是需要创建主要上下文的两个子元素?然后,我可以根据需要保存或回滚两个子上下文,并保存主上下文。有更好的方法吗?

谢谢,

儒略

1 个答案:

答案 0 :(得分:0)

因为每个对象的更改都可以取消,但在其他方面是独立的。您将希望为每个主要上下文使用子上下文。上下文虽然不便宜,但也不是特别昂贵。您使用子上下文来轻松取消更改是一种标准和鼓励模式。