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

Core data 我是否需要多个上下文来更新独立对象?,core-data,save,nsmanagedobjectcontext,rollback,Core Data,Save,Nsmanagedobjectcontext,Rollback,我有一个视图控制器,它更新从前面的表视图中选择的单个托管对象(类型a)。但是,VC上有一个按钮,用于加载另一个视图控制器以更新第二个托管对象(类型B)。两个视图控制器都以正常方式具有“保存”和“取消”按钮 我的要求是,我可以提交(保存上下文)对B的更改,并释放VC以继续对A的编辑。A的更改可能会被保存或取消,但我希望B保持更改 从概念上讲,这似乎需要相同级别的独立上下文。i、 e.我不能为B使用子上下文,因为如果a更新被取消,这些更改仍然会回滚 我可以创建两个主上下文,还是需要创建主上下文的两个

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

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

从概念上讲,这似乎需要相同级别的独立上下文。i、 e.我不能为B使用子上下文,因为如果a更新被取消,这些更改仍然会回滚

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

谢谢


朱利安

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

我就是这么想的。谢谢,如果你对我的答案感到满意,那么你应该考虑接受我的答案,点击上下箭头旁边的灰色复选标记就可以了。