核心数据:更新 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