使用cloudkit获取随机记录

时间:2015-08-11 13:51:51

标签: ios swift random fetch cloudkit

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

谢谢!

(我正在迅速写作)

1 个答案:

答案 0 :(得分:1)

假设recordID是一个随机guid,你可以为第一个记录生成你自己的guid和查询。

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

这不是纯粹的随机选择。如果使用几乎相似的guid创建2条记录,则其中最大的记录将被选择的机会较小。 guid的初始创建会影响选择记录的机会。

在进行选择时使用CKOperation,创建一个谓词,其中recordID>新创建的guid,将order设置为recordID并仅选择1条记录。如果选择未返回记录,请反转排序顺序并执行相同的查询。

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