如何解决UIManagedDocument中的冲突?我应该使用NSFileVersion吗?

时间:2013-08-23 19:20:25

标签: ios core-data icloud

我一直在浏览很多iCloud文档。我可以在iCloud和核心数据上找到documentation on how to resolve conflicts和有用的文档,例如Designing for Core Data in iCloudUsing Core Data with iCloud Release Notes。但是这些都没有解决如何使用UIManagedDocument专门解决iCloud冲突。

我应该将NSFileVersion与UIManagedDocument一起使用吗?

应该使用NSFileVersion解析UIDocument。它的子类UIManagedDocument也是如此吗?

UIManagedDocuments会自动解决冲突吗?

iCloud和Core Data文档经常引用NSPersistentStoreDidImportUbiquitousContentChangesNotification。此通知可让您知道何时进行了更改,但未通知您冲突。这是否意味着冲突只是自动解决(可能基于核心数据日志中的时间戳)?

NSMergePolicy和NSMergeConflict是否与iCloud有关?

核心数据也有类NSMergePolicyNSMergeConflict,但文档没有提到iCloud,似乎只适用于持久存储和托管上下文之间的冲突(而不是iCloud冲突) 。那些那些不适用于iCloud,对吗?

1 个答案:

答案 0 :(得分:0)

Apple的文档在iCloud核心数据编程指南中解决了这个问题。在子部分Design Your Core Data Stack to Be Efficient中,它描述了如何以与常规核心数据冲突解决方案相同的方式处理 iCloud冲突解决方案(即通过合并策略):

  

例如,如果要合并在单独的托管对象上下文和持久性存储协调器中进行的更改,则传统上使用合并策略。相比之下,使用iCloud,您可以使用合并策略合并对多个对等方的记录所做的更改。有关合并政策的进一步讨论,请参阅Change Management中的“Core Data Programming Guide”。