核心数据:更新 NSManagedObject 并选择回退到原始状态

Posted

技术标签:

【中文标题】核心数据:更新 NSManagedObject 并选择回退到原始状态【英文标题】:Core Data: Update an NSManagedObject with the option to fall back to it's original state 【发布时间】:2012-10-29 10:20:42 【问题描述】:

考虑一个具有一组属性 A 的托管对象,这些属性必须用一组属性 B 替换。但是,为 B 检索信息的机制不是故障安全的(例如,如果网络连接失败)并且有可能无法完全构建 B。在这种情况下,我需要回退到对象 A 的状态以保持一致性。 在这种情况下,实现故障安全、一致的更新机制的最佳 Core Data 模式是什么?

【问题讨论】:

【参考方案1】:

在您将save: 选择器发送到NSManagedObjectContext 对象之前,您所做的任何更改都不会保留。一旦“保存”,您就创建了一个“提交点”。如果您想回滚自核心数据中的最后一个提交点以来所做的任何更改,请将rollback 选择器发送到您的NSManagedObjectContext。您需要检查网络活动的成功结果,并根据最终结果发送save:rollback

【讨论】:

以上是关于核心数据:更新 NSManagedObject 并选择回退到原始状态的主要内容,如果未能解决你的问题,请参考以下文章

核心数据 NSManagedObject - ObservedObjects 未更新

如何使用更新的数据刷新 NSManagedObject - Core Data

获取核心数据中 NSManagedObject 的修改日期?

当更新版本已经在内存中时,强制核心数据从以前存储的版本刷新 NSManagedObject

核心数据-后台线程中的更新实体会自动更改主线程中的 NSManagedObject 而无需合并-为啥?

核心数据 NSManagedObject 更改