1

私は多くのiCloudドキュメントを調べてきました。競合を解決する方法に関するドキュメントと、iCloud でのコア データの設計や iCloud リリース ノートでのコアデータの使用など、iCloud とコア データに関する役立つドキュメントを見つけることができます。しかし、特に UIManagedDocument を使用して iCloud の競合を解決する方法については触れていません。

UIManagedDocument で NSFileVersion を使用する必要がありますか?

UIDocument は、NSFileVersion を使用して解決されるはずです。そのサブクラス UIManagedDocument にも当てはまりますか?

UIManagedDocuments は競合を自動的に解決しますか?

iCloud と Core Data のドキュメントでは、NSPersistentStoreDidImportUbiquitousContentChangesNotificationが多く参照されています。この通知により、変更が行われたことを知ることができますが、競合については通知されません。これは、競合が自動的に解決されるということですか (おそらく Core Data ログのタイムスタンプに基づいています)?

NSMergePolicy と NSMergeConflict は iCloud と関係がありますか?

Core Data にはクラスNSMergePolicyNSMergeConflictもありますが、ドキュメントでは iCloud について言及されておらず、(iCloud の競合ではなく) 永続的なストアと管理されたコンテキストの間の競合にのみ適用されるようです。それらはiCloudには当てはまりませんよね?

4

1 に答える 1

0

Apple のドキュメントでは、Core Data の iCloud プログラミング ガイドでこれに対処しています。サブセクションDesign Your Core Data Stack to Be Efficientでは、 iCloud 競合解決が通常の Core Data 競合解決と同じ方法で(つまり、マージ ポリシーを介して)処理される方法について説明しています。

たとえば、個別の管理対象オブジェクト コンテキストと永続ストア コーディネーターで行われた変更をマージする場合、従来はマージ ポリシーを使用していました。対照的に、iCloud では、マージ ポリシーを使用して、複数のピアのレコードに加えられた変更をマージします。マージ ポリシーの詳細については、「<a href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdChangeManagement.html#//apple_ref/doc/uid/」を参照してください。 TP30001201" rel="nofollow">コア データ プログラミング ガイドの変更管理" 。

于 2014-05-10T16:58:39.967 に答える