我有一个NSTableView,它通过CoreData支持的NSArrayController填充。用户可以编辑他们在NSTableView中选择的任何字段。当他们选择已修改的行并按下按钮时,数据将发送到第三方Web服务。如果webservice接受更新的值,我想将这些值提交给我的持久存储。但是,如果webservice返回错误(或者根本无法返回),我希望编辑的字段恢复为原始值。
为了使问题复杂化,我有许多其他可编辑的控件,由CoreData支持,不需要诉诸此行为。
我相信这个问题的解决方案围绕创建辅助托管对象上下文,我只使用在该特定NSTableView中编辑的值。但我对两个MOC如何相互作用感到困惑。
这个问题的最佳解决方案是什么?
答案 0 :(得分:1)
最简单的解决方案是实现Core Data的撤消功能。这样您就可以对Core Data进行更改,但如果服务器返回错误,您只需回滚更改。有关详细信息,请参阅Core Data文档。