2013-08-23 33 views
1

我一直在浏览大量的iCloud文档。我可以找到documentation on how to resolve conflicts以及有关iCloud和Core Data的文档,例如Designing for Core Data in iCloudUsing Core Data with iCloud Release Notes。但是这些地址都没有解决如何使用UIManagedDocument专门解决iCloud冲突。如何解决UIManagedDocument中的冲突?我应该使用NSFileVersion吗?

我应该在UIManagedDocument中使用NSFileVersion吗?

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

UIManagedDocuments是否自动解决冲突?

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

NSMergePolicy和NSMergeConflict与iCloud有什么关系?

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

回答

0

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

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