問題タブ [nsubiquitouskeyvaluestore]
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.
ios - iCloud が必要な場合の初回起動エクスペリエンスの処理方法
私は、CloudKit
公開されているデータを保存するために使用してNSPersistentCloudKitContainer
おり、コア データ スタックの一部として新しいものを使用して、プライベート データを保存/同期しています。
ユーザーがアプリを開くと、次の 4 つの状態のいずれかになります。
- 彼らはiCloudにアクセスできる新しいユーザーです
- 彼らはiCloudにアクセスできるリピーターです
- 彼らは新しいユーザーですが、何らかの理由でiCloudにアクセスできません
- 彼らはリピーターですが、何らかの理由で iCloud にアクセスできません。
状態 1 と 2 は、私の幸せな道を表しています。彼らが新しいユーザーである場合、最初のビューを表示する前に、ユーザーのプライベート ストアにデータをシードしたいと思います。彼らがリピーターの場合は、Core Data からデータを取得して初期ビューに渡したいと思います。
新しい/古いユーザーの決定:
私の計画は を使用することNSUbiquitousKeyValueStore
です。これに関する私の懸念は
、アプリをダウンロードする->以前にアプリを起動したことが記録されている->新しいデバイスでアプリを削除して再インストール/インストールする場合の処理です。更新を受け取るには時間がかかる
と思わNSUbiquitousKeyValueStore
れるので、最初のビューに移動する前に、同期が完了するまで待ちます。次に、iCloud にアクセスできない場合はどうなるかという問題があります。NSUbiquitousKeyValueStore
アップデートを受け取れない場合、彼らがリピーターかどうかはどうすればわかりますか?
iCloud アクセスの決定:
私が行った調査に基づいて、iCloud が利用可能かどうかを確認することFileManager.default.ubiquityIdentityToken
はできますが、理由nil
はわかりません。iCloud が利用できない理由を知るために使用する必要があります。問題は、非同期呼び出しであり、アカウントのステータスが何であるかを知る前に、アプリが先に進んでしまうことです。CKContainer.default().accountStatus
私は本当にこれに頭を悩ませています。これらすべての状態が適切に処理されるようにする最善の方法は何ですか?
icloud - watchOS に相当する NSUbiquitousKeyValueStore は何ですか?
App Groups
残念ながら、watchOS ではまだサポートされておらず、watchOSを除くすべてのプラットフォームでNSUbiquitousKeyValueStoreを利用できます。私は、Keeping Your watchOS Content Up to Dateを読み、iCloud について言及しています。とても簡単に聞こえますが、例は示していません。それをサポートするには、クライアント側のインフラストラクチャ全体を作成するCloudKit
必要があるようで、やり過ぎのように思えます。watchOS が奇妙なボールであるという理由だけで、残りのプラットフォームで同じことを行う必要があります。
私が見逃しているwatchOSに相当する単純なキー/値のiCloudストアはありますか? ミックスにwatchOSを追加すると、クラウドデータを共有するのは本当に難しいようです. 私は iPhone を信頼できる情報源として使用し、watchOS と通信しようとしましたが、非常に扱いにくく、互いに範囲内にある必要があり、そうしないと同期が取れなくなりました。ヘルプやガイダンスをいただければ幸いです。