2

ライブラリ スタイルの iCloud + Core Data セットアップがあります。私が取り組んでいるアプリには、ログイン画面の背後にあるユーザー データが含まれています。ユーザーがログインすると、Persistent Store Coordinator がインスタンス化され、iCloud ストアが追加されます。

これが私のユースケースと問題です:

1) アプリの使用を開始します。データは iCloud に保存されます。2) アプリを削除します。3) デバイスに再度ビルドし、アプリにログインします。トランザクション ログが呼び出され、ローカル ストアにデータが再作成されることを期待します。4) 低速の接続を使用すると、ファイルのダウンロードが失敗したことを示すエラーがデバッグ ログに何度も表示されます... 5) アプリが空で、バックアップの復元に失敗したように表示されます。

私の設定は確かに正しく、降下接続で 100% 動作します。

iCloudにこれらのファイルのダウンロードをすぐに再試行させる方法はありますか? ユーザーがアプリにアクセスできるようにする前に、これらのファイルが正常にダウンロードされたことを確認するために使用できるコールバックはありますか?

アドバイスをいただければ幸いです。ありがとう。

4

1 に答える 1

1

iCloud は、特に Core Data との統合など、まだ初期段階にあるテクノロジーです。

iCloud がコンテンツをデバイスにプッシュすることを決定する間隔は予測できず、残念ながら現時点では iCloud にデータを強制的に取得させる方法はありません。Apple Developer Forums のどこかに、iCloud コンテンツのダウンロードに失敗した場合、後で再試行するという記述があります。

現在使用できるコールバックもありません。アプリは、(可能であれば) 正しいコンテンツがいつダウンロードされたかを知るのに十分なほどスマートである必要があります。必要なコンテンツの量に応じて、通知から取得したデータ NSPersistentStoreDidUpdateUbiquitousContentChangesNotification(存在する場合) を確認し、userInfo ディクショナリで挿入 (または更新、削除) された行を確認することで、インベントリを作成できます。

私はアプリで同様のことを行うことができました。状況が発生した場合、ユーザーのローカル ストアを読み込み、後でストアをユビキタス ストアに移行します。

これらはほんの一部の提案であり、状況は大きく異なる場合があります。これが少なくとも何らかの形で役立つことを願っています。

于 2012-04-24T20:08:56.660 に答える