使用 cloudkit 获取随机记录

Fetch a random record with cloudkit

有谁知道从 Cloudkit 数据库中随机抓取一条记录的方法。 我似乎找不到办法。我已经能够通过限制 CKOperation 返回的结果来选择一条记录,但这不是随机的...... 我似乎也无法在文档中找到有关此问题的任何答案...

谢谢!

(我写在swift)

假设 recordID 是一个随机 guid,您可以生成自己的 guid 并查询大于该值的第一条记录。

如果您不自己创建 recordID,则它将是 CloudKit 分配的随机 guid。

这不会是纯随机的 select离子。如果使用几乎相似的 guid 创建了 2 条记录,那么其中最大的记录被 selected 的机会较小。 guid 的初始创建会影响记录被 selected 的机会。

在使用 CKOperation 执行 selection 时,创建一个谓词,其中 recordID > 新创建的 guid,将顺序设置为 recordID 并且 select 只有 1 条记录。当selection没有return一条记录时,将排序顺序倒转,执行相同的查询。

一个更好的解决随机 guid selection 的方法是,如果您可以按顺序对所有记录进行编号,获取最大数字,然后创建一个介于 1 和最大数字之间的随机数。