核心数据:refreshObject:mergeChanges:出现“缺失的链接”
Posted
技术标签:
【中文标题】核心数据:refreshObject:mergeChanges:出现“缺失的链接”【英文标题】:Core Data: refreshObject:mergeChanges: faulting with a "missing link" 【发布时间】:2012-07-02 08:42:45 【问题描述】:假设我有以下实体关系模型:
A <-->> B <-->> C <-->> D
A 是我的根对象,我将它保留在我的应用程序的某个位置。我使用 NSFetchRequest 来获取 C 的特定实例及其所有底层 D 对象,因此 B 尚未在上下文中注册。在我用完 C 之后,我想通过保存和使用 refreshObject:mergeChanges: 来清除该内存,将它连同它的所有 D 对象一起变成故障。但是,我想保持我的 A 对象完好无损。
由于所有相关实体都会变回故障,Core Data 是否会按照图表返回到我的 A 对象,或者上下文中缺少注册的 B 对象来链接两者会阻止这种情况发生吗?
【问题讨论】:
【参考方案1】:我会假设后者(对 A 没有更改),但您可以通过在托管对象子类中覆盖 willTurnIntoFault
来轻松检查:
- (void) willTurnIntoFault
NSLog(@"%@ will turn into fault", self.name);
[super willTurnIntoFault];
【讨论】:
以上是关于核心数据:refreshObject:mergeChanges:出现“缺失的链接”的主要内容,如果未能解决你的问题,请参考以下文章