問題タブ [nspersistentcloudkitcontainer]
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
私は本当にこれに頭を悩ませています。これらすべての状態が適切に処理されるようにする最善の方法は何ですか?
core-data - CloudKit CoreData エラーの検出/受信
NSPersistentCloudKitContainer
開発中、誰もデータを失うことがないように、できるだけ多くのシナリオをテストしようとする恐ろしいプロセスに切り替えて開始しました。
いくつかのテスト中に、次のようなエラーが表示されました。
私はこれを修正できましたが、一部のシナリオにのみ影響を与えていました。これが実際のユーザーに発生した場合、彼ら (および私) は問題について決して知らず、データは CloudKit に同期されませんでした。
ストアのロードに失敗するとエラーが発生しますが、ロードしても同期しない場合はエラーになります。
だから私の質問は: コードでこの種のエラーを受け取る方法はありますか?
通知とデリゲート メソッドを探しましたが、見つかりません。