2

previousServerToken が null の場合、CKFetchRecordChangesOperation は最初のデータ セットをダウンロードするために複数のパスを必要とするように見え、moreComing フラグがクリアされるまで再試行します。

レコードが多すぎるからではありません。私のテストでは、約 40 のメンバー レコードしかなく、それぞれが 6 つのグループのいずれかに属しています。

最初のパスでは、不適切な形式のメンバー レコードが 2 つ与えられます。2 番目のパスでは、まだダウンロードされていない、または何もダウンロードされていないグループからいくつかのメンバー レコードが送信されることがあります。3 回目のパスの後でのみ、残りのすべてのグループとメンバーが期待どおりにダウンロードされます。

なぜこれが考えられるのでしょうか?

4

2 に答える 2

3

これは、ゾーンで多くのレコードが削除されている場合に発生する可能性があります。サーバーはゾーンのすべての変更をスキャンし、削除されたレコードの変更を削除します。これにより、レコードの変更がゼロの変更のバッチが発生することがありますが、moreComingtrue に設定されます。

iOS 10/macOS 10.12の新しいfetchAllChangesフラグを見てください。CKFetchRecordZoneChangesOperationCloudKit は変更リクエストのフェッチをパイプライン処理します。ゾーン内のすべてがフェッチされるまで、レコードの変更とゾーン変更トークンが表示されます。

于 2016-06-15T00:05:40.900 に答える