1

我一直在浏览很多 iCloud 文档。我可以找到有关如何解决冲突的文档以及有关 iCloud 和 Core Data 的有用文档,例如Designing for Core Data in iCloudUsing Core Data with iCloud Release Notes。但这些都没有解决如何专门使用 UIManagedDocument 解决 iCloud 冲突。

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

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

UIManagedDocuments 会自动解决冲突吗?

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

NSMergePolicy 和 NSMergeConflict 与 iCloud 有什么关系吗?

Core Data 也有类NSMergePolicyNSMergeConflict,但是文档没有提到 iCloud,而且似乎只适用于持久存储和托管上下文之间的冲突(而不是 iCloud 冲突)。所以这些不适用于 iCloud,对吗?

4

1 回答 1

0

Apple 的文档在 iCloud Programming Guide for Core Data 中解决了这个问题。在Design Your Core Data Stack to Be Efficient小节中,它描述了如何以与常规 Core Data 冲突解决相同的方式处理 iCloud 冲突解决(即通过合并策略):

例如,当您想要合并在单独的托管对象上下文和持久存储协调器中进行的更改时,您通常会使用合并策略。相比之下,使用 iCloud,您可以使用合并策略来合并对多个对等点上的记录所做的更改。有关合并策略的进一步讨论,请参阅“<a href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdChangeManagement.html#//apple_ref/doc/uid/ Core Data Programming Guide中的 TP30001201" rel="nofollow">变更管理。

于 2014-05-10T16:58:39.967 回答