谁能给我一些关于 NSManagedObjectContext 中此方法 "refreshAllObjects" 的参考

Can anyone give me some reference for this method "refreshAllObjects" in NSManagedObjectContext

[managedObjectContext refreshAllObjects]

实际上我在保存上下文的某个时候遇到随机错误,当我在错误后调用 [managedObjectContext refreshAllObjects] 时,它允许我保存。
谁能指导我这个方法。

调用 refreshAllObjects 会对上下文中的所有对象调用 refreshObject:mergeChanges。您可以在此处查看有关 refreshObject:mergeChanges 的文档:

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObjectContext_Class/#//apple_ref/occ/instm/NSManagedObjectContext/refreshObject:mergeChanges:

您的持久存储可能已被其他上下文修改,因此当您尝试从当前上下文保存到它时会收到错误消息。如果您先刷新当前上下文,那么所有修改的数据都会被合并,您现在可以在没有冲突的情况下保存。

当您在上下文保存期间遇到错误时,您可能在上下文和持久存储之间存在合并冲突。如果在按 refreshAllObjects() 保存之前更新上下文,则会为上下文中的每个对象调用 refresh(_ object:mergeChanges:),其中 mergeChanges:是 true。这意味着在更新持久存储中更改的属性时,将保留上下文中更改的属性。这正是自动完成的,如果您将 context.mergePolicy 设置为 NSMergePolicyType.mergeByPropertyObjectTrumpMergePolicyType,请参阅文档 here and here.
但这可能不是你想要的。考虑一种情况,一个属性为 updatedAt 的实体可以在本地和远程更改,并且要求不能混合单个属性,但只应保留最后更新的完整实体。在这种情况下,none 的预定义合并策略适用,并且必须设置检查 updatedAt 属性的 自定义合并策略here.

描述了如何做到这一点