当previousServerToken为null时,CKFetchRecordChangesOperation似乎要花几遍才能下载第一组数据,然后重试直到moreComing标志被清除。

并不是因为记录太多-在我的测试中,我只有大约40条成员记录,每条记录都属于6个组之一。

第一遍给出了两个格式不正确的成员记录;第二遍有时会从尚未下载的组中发送一些成员记录,或者什么也不会发送。只有在第三遍之后,它才会按预期下载所有剩余的组和成员。

任何想法为什么会这样?

最佳答案

如果该区域中有很多记录被删除,则会发生这种情况。服务器将扫描该区域的所有更改,然后删除已删除记录的更改。有时这可能会导致一批更改,其中记录更改为零,但是moreComing设置为true。

看看iOS 10 / macOS 10.12中fetchAllChanges上的新CKFetchRecordZoneChangesOperation标志。 CloudKit将通过管道为您获取更改请求,您将仅看到记录更改和区域更改 token ,直到已获取区域中的所有内容。

08-04 02:43