我正在尝试从服务器上的几个表中实现批量数据的下载。
在我的情况下,有16个表。对于所有这些表,我将向服务器发出10个请求。这意味着我已经为相关表做了一些逻辑分组,但它就像所有表通过一个或另一个关系相互关联。
我在下载时需要考虑三个案例:
我将针对每个回复采用这种方法:
如果响应失败,我有两个选择:
第一种方法可能导致一些数据不一致,所以我采用第二种方法。
我知道如果未保存托管对象上下文,我们可以还原更改,但
如果托管对象上下文是,则可以还原更改 保存?
我需要社区提供一些有用的答案。
请建议。
答案 0 :(得分:1)
如果保存了托管对象上下文,是否可以还原更改?
保存后?也许吧,但这可能很棘手。如果为网络操作设置单独的托管对象上下文,并为其指定NSUndoManager
,则可以稍后告诉撤消管理器将所有内容回滚到之前的状态。
但是,在你完成之前不要保存更改会更简单。使用撤销管理器实际上并没有多大帮助 - 存储所有撤消操作所需的内存至少会与内存使用相匹配,从而保留所有未保存的更改,直到完成为止。如果您正在处理单独的托管对象上下文(无论是子上下文还是完全独立的上下文),处理错误情况就像让MOC在不保存更改的情况下取消分配一样简单。