2013-08-23 34 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」。