【问题标题】:How to resolve conflicts in UIManagedDocument? Should I use NSFileVersion?如何解决 UIManagedDocument 中的冲突?我应该使用 NSFileVersion 吗?
【发布时间】:2013-08-23 19:20:25
【问题描述】:

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

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

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

UIManagedDocuments 会自动解决冲突吗?

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

NSMergePolicy 和 NSMergeConflict 和 iCloud 有关系吗?

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

【问题讨论】:

    标签: ios core-data icloud


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-12
      • 2018-05-15
      相关资源
      最近更新 更多