私は既存のコアデータアプリケーションをiCloudと連携させることができました。研究の日の後、それは実際には驚くほど簡単でした。 3つの事が不可欠であると思わ:コアデータiCloudマージプロトコル
、「Summary]ペイン」を選択資格ファイル(最近のXcodeで、これはターゲットを選択して使用して行うことができますが、追加スクロールダウンし、資格を有効にチェックするために、」
persistenストアを追加しながら
は、私の場合には、適切なオプションを追加し
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: // other options @"<arbitrary name>", NSPersistentStoreUbiquitousContentNameKey, iCloudURL, NSPersistentStoreUbiquitousContentURLKey, nil]
NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
ここで `nil 'は、Entitlements.plistファイルの情報が使用されていることを示します。
- デベロッパーポータルを通じてiCloudのサポートをアプリに許可します。これには、前にやっていなかった独自のapp-IDを生成する必要があります。
実際には、この最後のステップが開発のために重要であるとは私は確信していません---私はこの最後のステップなしで別のアプリを有効にしており、動作するようです。
私は、異なるiDevices上の同じアプリケーションの2つの既存のコアデータベースが新しいエントリをコアデータスタックに同期させることに気づきましたが、既存のレコードは自動的には同期されません。
デバイスAからBへのデータを同期させる方法の1つは、B上の既存のコアデータデータベースを削除して、Bでアプリを再起動することです。ただし、これは適切なマージではありません。
アプリがiCloudサポートを使用するようにアップグレードされた瞬間に、2つの既存のコアデータデータベースを異なるアプリにマージする方法を知っている人は誰ですか?
おかげ
(@steipeteで)多分あなたはこれと同様の問題 に助けを見つけることができますhttp://stackoverflow.com/questions/6588180/can-you-sync-coredata-with-icloud –
ここをクリックしてください - https://devforums.apple.com/thread/126670 –
いいえ、レシピアプリに便利なコードが含まれています(そのうち、バックグラウンドで永続的ストアコーディネータにストアを追加する---大きなコアデータをマージするときに便利ですデータベース)では、2つの異なるデバイス上に2つの既存のコアデータインスタンスをマージするという問題に対処していません。私は何とかトランザクションログを再生する方法を探していました。 – davidav