問題タブ [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.
objective-c - iCloudデータをユーザー固有に同期させる方法は?
ユーザーデータ(ユーザーが要求した場合)をiCloud(を使用NSUbiquitousKeyValueStore
)に同期すると、正しく同期されます。ただし、2 つの異なるデバイスを 2 つの異なる Apple ID で使用すると、両方で同じデータが表示され、それらの間で同期することができます。そのため、複数のユーザーがお互いのデータを見ることができます。
同期するユーザーを特定する方法はありますか、またはどこかで間違いを犯しましたか?
私が使用するいくつかのコード:
問題が解決しました:
Apple ID を App Store で変更したところ、iCloud で変更するのを忘れていました。これで問題は解決しました。すべてが正常に機能しています。
objective-c - Cocoa アプリと iOS アプリ間の iCloud 同期をテストする方法
私の問題は単純
です。現在、 iCloud (キー値ストア)にデータを保存するCocoa アプリケーションを開発しています。iCloud 同期をテストするために、単純なiOS アプリを作成し、デバイスにインストールしました。
ココアアプリでiCloudの初期化を行いました:
およびセレクター:
iCloudからのデータをキャッチするため。NSUbiquitousKeyValueStore
にデータを保存するときに追加のアクションを使用して、iOS アプリですべて同じことを行います。
私のテストシナリオは次のとおりです。
- Xcode でココア アプリケーションを実行します。
- デバイスで iOS アプリを実行する
- iOS アプリには、スクリプト 1を呼び出すボタンがあります。
- ここで、Cocoa アプリでdataUpdatedFromCloudが 10 ~ 20 秒で呼び出されることを期待していますが、そうではありません!!!
私はすべて正しいことをしていますか、それとも何かを間違って理解しているのでしょうか?
ios - ユーザーは NSUbiquitousKeyValueStore に格納されている値を変更できますか?
NSUbiquitousKeyValueStore
iCloudにユーザーデータの辞書(宝石、ユーザー名など)を保存するために使用しています。
ジェムは消費可能な IAP としてアプリで購入でき、ユーザーが持っているジェムの総数は に保存されNSUbiquitousKeyValueStore
ます。ユーザーがこれを変更できる場合、ユーザーが IAP をバイパスしてこの値を直接変更できるビジネス モデルに大きな影響を与えます。
問題は、どの程度安全でNSUbiquitousKeyValueStore
、私のシナリオに適しているかということです。SOに関するいくつかの関連する質問を見つけましたが、決定的な答えはありません。
ios8 - NSUbiquitousKeyValueStore が機能しない...まったく
私はユニークな問題のように見えるものを抱えています。私の NSUbiquitousKeyValueStore は、シミュレーターでの起動の間に単に機能していません。つまり、iCloud 同期などについて話しているわけでもありません。以下の簡単なテストに合格することはできません!
iOS 8 アプリをシミュレーターで実行するたびに、同じメッセージが出力されます。
はい、iCloud は資格で構成され、有効になっています。はい、「Key Value Store」にもチェックが入っています。はい、Simulator アカウントは iCloud 同期用にセットアップされています。
ローカルのバッキング SQLite DB でさえ、実行ごとに破壊されているようですか? 私は途方に暮れています。
ios - 1MB未満であることを確認するためにiCloudキー値ストレージのサイズを決定する方法はありますか?
割り当てられた 1MB のうち、アプリが iCloud KVS に使用している量を特定する方法はありますか? 設定> iCloudルートを確認しましたが、KVSの場合はそこに表示されないと思います。いくつかの文字列の配列を保存しているだけですが、ユーザーに役立つ同期できる可能性のあるものを他に見たかっただけです。ありがとう!
ios - アプリの iCloud ライフタイムで一度だけ iCloud をシードする許可を要求する AlertView を表示するにはどうすればよいですか?
最後に一つ質問があります。
私は、iCloud を複数回シードすることは悪い考えであり、ユーザーが間違ったことをする可能性がある場合、遅かれ早かれそうするだろうという信念/経験に基づいて取り組んでいます。
私がしたいこと:
A. ユーザーがアプリ設定の「iCloud を有効にする」を NO から YES に変更した場合、AlertView を表示して、ユーザーが既存の非 iCloud データをクラウドにシードするかどうか (Yes または No) を尋ねます。
B. アプリが iCloud アカウントで一度だけ iCloud をシードすることを確認し、最初のシードが完了したら AlertView を表示しないようにします。
私の方法:
NSUbiquitousKeyValueStore の適切な使用に関する Apple のドキュメントに従って、- (void)application: dFLWOptions: で次のメソッドを使用しています。
}
アプリケーションの上部近くに次のコードを含めます: dFLWO:
/li>iCloud ストアをロードした後、シードが行われていない場合にのみ、iCloud 以外のデータでシードします。
/li>播種が完了したら、次の手順を実行して、播種の繰り返しを防ぎます。
/li>上記のプロセスを実行する前に、以下を使用して iCloud を完全にリセットしてください。
これは私の問題、私見に対する非常にきちんとした解決策ですが、完全にはやり遂げることができません。
私の質問:
上記の updateKVStoreItems: への最初の通知にどのように対応すればよいですか? 悪い情報のお知らせです。値はTRUEだと言いますが、TRUEに設定したことはありません。NSUbiquitousKeyValueStore でキーのデフォルト値を設定するにはどうすればよいですか?
最初の通知が理由であることがわかりました: NSUbiquitousKeyValueStoreInitialSyncChange そのメモが来ると、bValue は YES です。これは私の問題です。あたかも、iCloud/iOS が新しい BOOL を TRUE であると想定しているかのようです。Apple Docs に従って NSUserDefault を NO に設定できるように、最初はこの値を NO にする必要があります。その後、シード処理が完了したら、最終的に値を設定します: キーの YES:@"iCloudSeeded"
Apple からの次のメッセージの意味を理解できないことがわかりました。
オンラインで見つけた以下の2番の意味がよくわかりません。
この問題が NSUbiquitousKeyValueStore ではなく NSUserDefaults にある場合は、registerDefaults に行く必要があると思います。
もうすぐそこです。どうすればいいですか。読んでくれてありがとう、マーク
ios - iOS 8 の Today ウィジェットと iCloud / NSUbiquitousKeyValueStore
何か間違ったことをしているのですか、それともNSUbiquitousKeyValueStore
iOS 8 の Today ウィジェットからのアクセスはまったく許可されていませんか?
含まれているアプリの にアクセスしようとしていますNSUbiquitousKeyValueStore
が、たとえば、同期するときです。失敗した場合と同様に、0 を返します。
ありがとう、マット
ios - アプリ拡張機能とメイン アプリケーションの両方で NSUbiquitousKeyValueStore を使用する
アプリ グループをセットアップしNSUserDefaults initWith suiteName
、アプリと拡張機能が同じ設定セットにアクセスできるようにするために使用しています。その実装を、iCloud 経由でこれらの設定を同期する実装に置き換えたいと思います (iCloud が有効になっている場合)。
私は、NSUbiquitousKeyValueStore
まさに私が必要としているものと思われるものを読みました。ただし、ドキュメントには、「アプリは常にデフォルトの iCloud キー値ストア オブジェクトを使用して値を取得および設定する必要があります。このストアは、アプリが資格要求で提供する一意の識別子文字列に関連付けられています」と記載されています。これを採用すると、アプリの拡張機能がメインのアプリと同じストアにアクセスすることはなくなると思います。拡張機能プログラミング ガイドでは、そのようなストアの共有については何も述べられていません。同じ設定へのアクセスを許可するが、そのデバイスにローカルに保存されるソリューションについてのみ言及されています。
そのアプリの拡張機能からもアクセスできる単純な設定の iCloud 同期をどのように実装しますか?
もう 1 つの簡単な質問ですが、iOS 8 では何か変更がありましたか? iCloud APIに関して大きな変更があったことは知っていますが、おそらく単純な設定の同期には触れておらず、iCloud Driveを実装しただけでしょうか?