問題タブ [ckfetchrecordchangesopera]
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 - CloudKit fetchRecordChangesOperation は、「AppDefaultZone は同期セマンティクスをサポートしていません」を返します
CKFetchRecordsChangeToken で CKFetchRecordChangesOperation を使用して変更を取得していますが、「AppDefaultZone は同期セマンティクスをサポートしていません」と表示されます。
問題のあるコードは次のとおりです。
そして、これが印刷されているエラーです
ios - cloudKit: 公開データベースでの CKFetchRecordChangesOperation
cloudKit を使用して iOS アプリを作成しています。デバイスと cloudKit の間のデルタを取得する cloudKit でデータのバッチ フェッチを実行しようとしていますが、公開データベースでは CKFetchRecordChangesOperation が機能しないようです。私の唯一のオプションは、私のデータを取得するための CKQuery ですか? 例えば:
よろしくお願いします。
macos - CKFetchNotificationChangesOperation の使用方法
購読しているCKFetchNotificationChangesOperation
からの見逃したすべての通知を処理し、Mac アプリケーションで に転送するにはどうすればよいですか? そのメソッドのコードは次のとおりです。CKSubscription
- (void)application:(nonnull NSApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo {
私のアプリはメニューレットであり、見逃した通知をチェックし、メニューレットがクリックされたときに適切に処理する必要があります。
更新:これは私が試したコードですが、配列は常に空で、エラーはありません。アプリを実行し、アプリを閉じ、レコードを削除してから、アプリを再度実行してテストしています。
ios - 機能しない UPDATE 通知の代替手段
UPDATE 通知が機能しなくなりました。Appleが何かを理解するまで、どのような回避策がありますか?
CKFetchNotificationChangesOperation が UPDATE、DELETE 通知を返さない場合がある レコードの更新に関する CloudKit プッシュ通知が 機能しなくなった
私の簡単な修正は、毎分、ユーザーがトリガーしたときにUIRefreshControl
、最後の更新以降に変更されたすべてのレコードをダウンロードすることです。できます。でも、頭の中にもっといい考えがあるんだ、好奇心旺盛だ、君はどう思う?欠点。
Change
データベースにテーブルを追加することを考えています。recordName
、recordType
、changeType
フィールドがあります。、、文字列値をchangeType
持つことができます。(またはそれに応じて int 列挙)insert
update
delete
そしてCKSubscription
、テーブルだけで作成し、観察しChange
ます。カスタムテーブルでレコードが作成、更新、削除されるときは常に、そのアクションを実行し、2番目のアクションとしてChange
テーブルに「ログエントリ」を作成します。でのInsert
操作でChange
あり、挿入通知が機能しているように見えるため、すべてのデバイスに通知されます。参照されたレコードをダウンロードできます。
欠点はありますか?
ios - CKFetchRecordChangesOperation で多くの変更が行われるのは正常ですか?
アプリで CloudKit を使用していますが、うまく機能しているようです。ただし、新しいデバイスでアプリを初期化するときは、
以前のすべての削除と変更が同期されているように見えるため、多くの変更を取得します。
より良い方法はありますか?たとえば、現在のデータの完全なセットをダウンロードして、serverChangeToken を現在の値に設定するだけです。
cloudkit - CloudKit: 削除されたレコードの CKQueryOperation
を使用せずに、最近削除されたアイテム (おそらく特定のタイムスタンプから) を CloudKit にクエリする方法はありますCKFetchRecordChangesOperation
か? 私はパブリック データベースを使用しているため、カスタム ゾーンを使用できません (これは の要件になりますCKFetchRecordChangesOperation
) ... そのため、パブリック データベースでこれをシミュレートする方法が必要です。
CloudKit レコードの変更について、ローカルの Core Data キャッシュを効率的に更新できるようにしたいと考えています。CloudKit レコードを照会すると、CKRecord にはcreationDate
andmodificationDate
プロパティがあり、最近作成または変更されたレコードを照会できますが、CloudKit で削除されたレコードでは機能しません。
ここで効果的な戦略は何でしょうか?
ios - CKFetchRecordChangesOperation がジャンク データを最初に返す
previousServerToken が null の場合、CKFetchRecordChangesOperation は最初のデータ セットをダウンロードするために複数のパスを必要とするように見え、moreComing フラグがクリアされるまで再試行します。
レコードが多すぎるからではありません。私のテストでは、約 40 のメンバー レコードしかなく、それぞれが 6 つのグループのいずれかに属しています。
最初のパスでは、不適切な形式のメンバー レコードが 2 つ与えられます。2 番目のパスでは、まだダウンロードされていない、または何もダウンロードされていないグループからいくつかのメンバー レコードが送信されることがあります。3 回目のパスの後でのみ、残りのすべてのグループとメンバーが期待どおりにダウンロードされます。
なぜこれが考えられるのでしょうか?
cloudkit - CKFetchDatabaseChangesOperation がレコード ゾーン ID を返さない
アプリで CloudKit を使用しており、WWDC ビデオ「CloudKit のベスト プラクティス」のベスト プラクティスに従うことから始めました。
最初に行うことは、私が好きな変更を確認することです。
フェッチを設定しているプライベート データベースにレコードがありますが、取得できるのはchangeTokenUpdatedBlock
とだけfetchDatabaseChangesCompletion
です。
recordZoneWithIDChangedBlock
この操作を実行すると、ヒットが発生し、プライベート データベースのデフォルト ゾーンがこのブロックに渡されることを期待する必要があると言うのは正しいですか?
これは、 my を呼び出したときにfetchDatabaseChangesCompletion
、レコード ゾーン ID の配列が空であるため、取得するものが何もないことを意味します: (注意、error
nil です)