CloudKit 批量获取?

Posted

技术标签:

【中文标题】CloudKit 批量获取?【英文标题】:CloudKit Batch Fetches? 【发布时间】:2014-11-25 18:40:52 【问题描述】:

使用 CloudKit,如何批量获取结果?

我知道默认提取限制它 100 个结果。那么我该拿谁来获取后续的 100 个结果呢?

【问题讨论】:

【参考方案1】:

CloudKit 返回的记录数不固定。 CloudKit 有一种机制来决定返回多少记录。看起来它目前是 100,但它可能会根据 Cloudkit 上的当前负载而改变。可以在 CKQueryOperation 对象上将其设置为固定数字。默认为:

operation.resultsLimit = CKQueryOperationMaximumResults;

该属性的文档说:When using that value, the server chooses a limit that aims to provide an optimal number of results that returns as many records as possible while minimizing delays in receiving those records. However, if you know that you want to process a fixed number of results, change the value of this property accordingly.

CKQueryOperation 将在 queryCompletionBlock 中返回一个游标,然后可以使用该游标执行另一个 CKQueryOperation 以获取下一个块。

【讨论】:

明白了!谢谢 Edwin,我没有意识到光标是我需要查看的,现在更有意义了。 我今天发现,虽然游标确实允许您以 100 条为一组继续获取更多记录,但检索的数量上限为 10,000 条。我不知道如何超越这一点。我需要能够遍历表中的所有记录(并且有很多)。我尝试将结果限制设置为(例如)20,000,但这会产生不同数量的记录的结果,通常在 101 左右。

以上是关于CloudKit 批量获取?的主要内容,如果未能解决你的问题,请参考以下文章

为啥CKModifyRecordsOperation批量删除CloudKit中的记录不删除记录?

CloudKit CKReference 列表

CloudKit 获取用户 iTunes 备份

保存和获取 CloudKit 引用

在 CloudKit 中获取私有用户记录

从 CloudKit 获取包括 CKReference 的数据