問題タブ [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.
arrays - Swift 述語は、値の配列の最初の値にのみ一致します
Download
のラッパーとして機能するクラスがありますCKQueryOperation
。init の 1 つを使用すると、値の配列を使用して述語を作成できます。
テストするとquery
、配列の最初の値にのみ一致します。したがってqueryValues = [testValue0, testValue1]
、 フィールドが一致する 1 つのレコードがあり、testValue0
に一致する 2 番目のレコードがあるtestValue1
場合、最初のレコードのみが検出されます。順序を入れ替えると、他のレコードが認識されます。
配列で述語を作成できるのに、最初の値だけが一致するのは奇妙に思えます。ドキュメントには、値は出現順に代入されると書かれていますが、それでも 2 番目の値に移行するべきではありませんか?
詳細なコンテキストについては、各レコードが個別のデータベース (プライベートとパブリック) に格納され、param が nil のままの場合、私のクラスは両方が依存Download
する 2 つの個別のデータベースを起動します。どちらの操作が失敗しても、最初の値に一致する結果が見つからず、2 番目の値をチェックする前に諦めます。CKQueryOperations
query
database
「ダウンロード」の完全なコードと、必要に応じて失敗した単体テストを含めることができます。
ios - CloudKit 通知がすべてのデバイスに配信されない
デバイスでアプリを起動したときに、CloudKit 通知がすべてのデバイスに配信されないという問題があります。ただし、アプリが XCode から起動されている場合は、すべて正常に動作します。
具体的には:
- デバイス A はレコードを保存します
- サーバーには、レコードの変更時に通知を送信する CKQuerySubscription があります。
- サーバーログによると、この通知はプッシュされます
- ただし、デバイス B は、アプリが XCode から開始された場合にのみ通知を受け取ります。ホーム画面から起動した場合は表示されません。
- 完璧にするために:デバイスBにレコードを保存すると(アプリがXcodeまたはホーム画面から開始されたかどうかに関係なく)、デバイスAは常に通知を受け取ります。
ヒントの通知を喜んで受け取ります ;-) ウド