問題タブ [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.
cocoa-touch - iCloud Key Value Sync - 初回起動
iCloud を使用して、デバイス間の同期ユーザー設定を保存しています。デバイスでは、これらは の「お気に入りのチーム」の配列に保存され、MKiCloudSyncNSUserDefaults
を使用してそれらを にミラーリングしています。1 つのデバイスでの変更が、2 番目のデバイスにうまく伝播しています。NSUbiquitousKeyValueStore
しかし、新規インストール後の最初の起動時にクラウド データが消去されないようにする方法がわかりません。何が起こっているかは次のとおりです。
- デバイス A が初めて起動します。アプリはクラウドで何も検出しません。ユーザーは、NSUserDefaults の配列に複数の項目を追加します。変更はすぐにクラウドに同期されます。
- デバイス B は初めて起動しますが、オフラインです。ユーザーが配列に 1 つのアイテムを追加すると
NSUserDefaults
、アプリが iCloud をサポートしていることを覚えているので、代わりに Wi-Fi を見つけます。 - デバイス B は、そのバージョンのデフォルトをクラウドにプッシュします (アイテムは 1 つだけ)。デバイス A はそれをプルし、デバイス A に追加されたすべてのチームを事実上一掃します。
これはiCloudの制限ですか、それとも私の実装は単純ですか? ドキュメントは、「最高レベル」が同期される同様の問題に対処し、この値を小さい値で上書きしないようにアプリケーション ロジックを追加します。従うべき明確なビジネス ロジックがある場合は問題ありませんが (より高いレベルは常に保持する必要があります)、データがより恣意的である場合、何をすべきかを判断する方法がわかりません。
それとも、「お気に入りのチーム」の NSUserDefaults で配列を使用していて、それを大規模に置き換えているためですか? チームごとに別々のキーを使用した場合、タイム コードに基づいて個別に同期されるのでしょうか?
ios - アプリケーションからiCloudとの間でファイルをインポート/エクスポートします
私はiCloud
初めてAPIに取り組んでいます。アプリケーションを介して iCloud との間でファイル (.doc、.pdf、.xls の任意の種類のファイル) をインポート/エクスポートしたいと考えています。
私たちのアプリケーションには、ユーザーがクラウドに保存できるさまざまな種類のドキュメントがあり、ユーザーが異なるデバイスから同じアプリケーションを使用している場合、保存されているすべてのファイルをiCloud
取得して表示する必要があります。