【问题标题】:Do I need multiple contexts to update independent objects?我需要多个上下文来更新独立对象吗?
【发布时间】:2017-01-28 21:21:28
【问题描述】:

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

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

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

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

谢谢,

朱利安

【问题讨论】:

    标签: core-data save nsmanagedobjectcontext rollback


    【解决方案1】:

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

    【讨论】:

    • 我就是这么想的。谢谢
    • 如果您对我的回答感到满意,那么您应该考虑接受我的回答,方法是单击上下箭头旁边的灰色复选标记。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    相关资源
    最近更新 更多