問題タブ [mkicloudsync]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
652 参照

cocoa-touch - iCloud Key Value Sync - 初回起動

iCloud を使用して、デバイス間の同期ユーザー設定を保存しています。デバイスでは、これらは の「お気に入りのチーム」の配列に保存され、MKiCloudSyncNSUserDefaultsを使用してそれらを にミラーリングしています。1 つのデバイスでの変更が、2 番目のデバイスにうまく伝播しています。NSUbiquitousKeyValueStore

しかし、新規インストール後の最初の起動時にクラウド データが消去されないようにする方法がわかりません。何が起こっているかは次のとおりです。

  1. デバイス A が初めて起動します。アプリはクラウドで何も検出しません。ユーザーは、NSUserDefaults の配列に複数の項目を追加します。変更はすぐにクラウドに同期されます。
  2. デバイス B は初めて起動しますが、オフラインです。ユーザーが配列に 1 つのアイテムを追加するとNSUserDefaults、アプリが iCloud をサポートしていることを覚えているので、代わりに Wi-Fi を見つけます。
  3. デバイス B は、そのバージョンのデフォルトをクラウドにプッシュします (アイテムは 1 つだけ)。デバイス A はそれをプルし、デバイス A に追加されたすべてのチームを事実上一掃します。

これはiCloudの制限ですか、それとも私の実装は単純ですか? ドキュメントは、「最高レベル」が同期される同様の問題に対処し、この値を小さい値で上書きしないようにアプリケーション ロジックを追加します。従うべき明確なビジネス ロジックがある場合は問題ありませんが (より高いレベルは常に保持する必要があります)、データがより恣意的である場合、何をすべきかを判断する方法がわかりません。

それとも、「お気に入りのチーム」の NSUserDefaults で配列を使用していて、それを大規模に置き換えているためですか? チームごとに別々のキーを使用した場合、タイム コードに基づいて個別に同期されるのでしょうか?

0 投票する
0 に答える
183 参照

ios - アプリケーションからiCloudとの間でファイルをインポート/エクスポートします

私はiCloud初めてAPIに取り組んでいます。アプリケーションを介して iCloud との間でファイル (.doc、.pdf、.xls の任意の種類のファイル) をインポート/エクスポートしたいと考えています。

私たちのアプリケーションには、ユーザーがクラウドに保存できるさまざまな種類のドキュメントがあり、ユーザーが異なるデバイスから同じアプリケーションを使用している場合、保存されているすべてのファイルをiCloud取得して表示する必要があります。