UIManagedDocument は行レベルの競合を処理しますか、またはそれらを処理する必要がありますか?彼の答えは、行レベルの競合を処理することでした。多分私は彼を誤解しましたが、私はこれを見ていません。
そこで、ここで明確にするために、いくつかの重要な質問をします。これも UIManagedDocument です。
姓と名のフィールドを持つテーブル Author がある場合、次のようになります。次に、一方のデバイスで名を「Jon」から「John」に編集し、もう一方のデバイスで姓を「Do」から「Doe」に編集します。iCloud と UIManagedDocument はこれをどのように処理しますか? 競合を処理するために応答する必要がある何らかの通知を受け取りますか? 次のコードを試しましたが、通知が届きません。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_ondocumentStateChangedNotification:) name:UIDocumentStateChangedNotification object:self.openedDoc];
B) 2 つのデバイスに別の作成者を追加して、2 つの行がマージされるようにするとどうなりますか? UIManagedDocument はそれを処理しますか? 自分で何かをする必要がある場合、何をする必要がありますか? 私は NSPersistentStoreDidImportUbiquitousContentChangesNotification にサインアップしようとしましたが、それも私にはうまくいかないようです。どのコンテキストに対してサインアップしますか? 私はこれを試しました:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_onPersistentStoreDidImportUbiquitousContentChanges:) name:NSPersistentStoreDidImportUbiquitousContentChangesNotificationobject:self.openedCaddy.managedObjectContext.parentContext];
また、UIManagedDocument の NSManagedObjectContextDidSaveNotification を自分で処理する必要がありますか、または UIManagedDocument がそれを処理しますか?
私はここで本当に苦労しています。私は iOS 5 の立ち上げ時に iCloud と UIManagedDocument を採用し、当時はドキュメントが不足していたため手探りでしたが、なんとか製品を出荷することができました。