問題タブ [ckquery]

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 投票する
2 に答える
573 参照

arrays - Swift 述語は、値の配列の最初の値にのみ一致します

Downloadのラッパーとして機能するクラスがありますCKQueryOperation。init の 1 つを使用すると、値の配列を使用して述語を作成できます。

テストするとquery、配列の最初の値にのみ一致します。したがってqueryValues = [testValue0, testValue1]、 フィールドが一致する 1 つのレコードがあり、testValue0に一致する 2 番目のレコードがあるtestValue1場合、最初のレコードのみが検出されます。順序を入れ替えると、他のレコードが認識されます。

配列で述語を作成できるのに、最初の値だけが一致するのは奇妙に思えます。ドキュメントには、値は出現順に代入されると書かれていますが、それでも 2 番目の値に移行するべきではありませんか?

詳細なコンテキストについては、各レコードが個別のデータベース (プライベートとパブリック) に格納され、param が nil のままの場合、私のクラスは両方が依存Downloadする 2 つの個別のデータベースを起動します。どちらの操作が失敗しても、最初の値に一致する結果が見つからず、2 番目の値をチェックする前に諦めます。CKQueryOperationsquerydatabase

「ダウンロード」の完全なコードと、必要に応じて失敗した単体テストを含めることができます。

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

ios - CloudKit 通知がすべてのデバイスに配信されない

デバイスでアプリを起動したときに、CloudKit 通知がすべてのデバイスに配信されないという問題があります。ただし、アプリが XCode から起動されている場合は、すべて正常に動作します。

具体的には:

  • デバイス A はレコードを保存します
  • サーバーには、レコードの変更時に通知を送信する CKQuerySubscription があります。
  • サーバーログによると、この通知はプッシュされます
  • ただし、デバイス B は、アプリが XCode から開始された場合にのみ通知を受け取ります。ホーム画面から起動した場合は表示されません。
  • 完璧にするために:デバイスBにレコードを保存すると(アプリがXcodeまたはホーム画面から開始されたかどうかに関係なく)、デバイスAは常に通知を受け取ります。

ヒントの通知を喜んで受け取ります ;-) ウド