iCloud で既存のデータを確認する最良の方法は何ですか?
ダウンロードできるように、データがローカル デバイスまたは iCloud に存在しないことを確認する必要があります。
タグを含めたのでcore-data
、iCloudファイルAPIやユビキタスなKey-ValueストアではなくCoreDataを使用していることを意味していると思います。
Core Dataの組み込みのiCloudサポートを使用すると、iCloudを使用していない場合とまったく同じ方法で既存のデータをチェックできます。Core Dataスタックを作成したら、通常のCore Dataフェッチを実行して、存在するデータを確認します。ローカルデータとクラウドデータの(公開された)概念はありません。iCloudとの通信方法を知っているデータストアは1つだけです。ダウンロードを明示的に開始するのではなく、自動的に実行されます。
を呼び出すアプリの起動時にaddPersistentStoreWithType:configuration:URL:options:error:
、CoreDataはローカルでまだ利用できないデータのダウンロードを内部的に開始します。その結果、このメソッドはしばらくの間ブロックされる可能性があります。正常に戻った場合は、現在のすべてのダウンロードが完了したと見なすことができます。
アプリの実行中に新しい変更が表示された場合、Core Dataはそれらをダウンロードしてインポートし、終了すると、NSPersistentStoreDidImportUbiquitousContentChangesNotification
何が起こったかを通知するために投稿します。
これはすべて、CoreDataのiCloudがどのように機能するかを説明しています。実際には、意図したとおりに機能するとは限らないことに気付くでしょう。
指摘してくれた @Tom Harrington に感謝します。このエラーは、開発者/コーディングとは関係ありません。純粋に iCloud/Apple/接続の問題に関係しています。
私が見つけたこのSOの答えの詳細。