任何人都可以给我一些参考 NSManagedObjectContext 中的这个方法“refreshAllObjects”

Vij*_*y S 4 nsmanagedobject nsmanagedobjectcontext ios

[managedObjectContext refreshAllObjects]
Run Code Online (Sandbox Code Playgroud)

实际上,我在保存上下文期间的某个时候遇到随机错误,当我[managedObjectContext refreshAllObjects]在错误后调用时,它允许我保存。
任何人都可以请指导我这种方法。

hap*_*384 5

调用 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。如果您得到的错误是由于冲突引起的,并且在持久存储中更改的数据与您尝试修改和保存的数据发生冲突,则最终可能会出现意外结果。如果您进行刷新,然后修改您想要的数据,然后保存,您的所有更改都会正确保存。 (2认同)