我是否需要多个上下文来更新独立对象?
Do I need multiple contexts to update independent objects?
我有一个视图控制器,它更新从前面的 table 视图中选择的单个托管对象(类型 A)。但是,VC 上有一个按钮,它加载另一个视图控制器以更新第二个托管对象(类型 B)。两个视图控制器都以正常方式具有保存和取消按钮。
我的要求是我可以提交(保存上下文)对 B 的更改并展开 VC 以继续对 A 进行编辑。A 更改可能会被保存或取消,但我希望 B 保留改变了。
从概念上讲,这似乎需要同一级别的独立上下文。即我不能为 B 使用子上下文,因为如果取消 A 更新,这些更改仍会回滚。
我可以创建两个主要上下文,还是我需要创建两个主要上下文的子上下文?然后,我可以根据需要保存或回滚两个子上下文,并保存主上下文。有更好的方法吗?
谢谢,
朱利安
因为每个对象的更改都可以取消,但在其他方面是独立的。您将希望为它们中的每一个使用主上下文的子上下文。上下文虽然不便宜,但也不是特别昂贵。您使用子上下文以允许轻松取消更改是一种标准且受鼓励的模式。
我有一个视图控制器,它更新从前面的 table 视图中选择的单个托管对象(类型 A)。但是,VC 上有一个按钮,它加载另一个视图控制器以更新第二个托管对象(类型 B)。两个视图控制器都以正常方式具有保存和取消按钮。
我的要求是我可以提交(保存上下文)对 B 的更改并展开 VC 以继续对 A 进行编辑。A 更改可能会被保存或取消,但我希望 B 保留改变了。
从概念上讲,这似乎需要同一级别的独立上下文。即我不能为 B 使用子上下文,因为如果取消 A 更新,这些更改仍会回滚。
我可以创建两个主要上下文,还是我需要创建两个主要上下文的子上下文?然后,我可以根据需要保存或回滚两个子上下文,并保存主上下文。有更好的方法吗?
谢谢,
朱利安
因为每个对象的更改都可以取消,但在其他方面是独立的。您将希望为它们中的每一个使用主上下文的子上下文。上下文虽然不便宜,但也不是特别昂贵。您使用子上下文以允许轻松取消更改是一种标准且受鼓励的模式。