我有一个实体与其他实体有很多关系的情况。我在实体的NSManagedObject中进行了一些更改,并放弃了这些更改。
现在,我在每个相关实体上依次调用managedObjectContext.refresh(entity, mergeChanges: false)
和managedObjectContext.refresh(relatedEntity, mergeChanges: false)
,以确保上下文中没有悬空的对象。
如果我直接致电managedObjectContext.reset()
,会有什么区别?我是否仍需要刷新或标记零个相关实体?
有什么方法可以使此代码更优化?
如果调用reset
,则还需要立即停止使用从该上下文中获取的每个托管对象。 reset
之后需要重做所有提取,因为这会使上下文忘记它已经提取的所有内容。
有多种模式可以更有效地创建您所描述的可放弃的更改。一种流行的选择是: