如何在iOS核心数据中随机执行SORT_BY或ORDER_BY?
需要获取10个计数器大于10的随机记录。* counter是一个属性
感谢您的帮助。
答案 0 :(得分:2)
核心数据不直接支持此功能,但您可以执行以下操作(具体取决于数据集中的行数)。
对于较小的数字(以千为单位),您可以获取与谓词匹配的所有托管对象ID(将获取请求的获取结果类型设置为适当的值)。这将为您提供一个低开销的数组,然后您可以从中随机选择10个ID,然后获取完整的对象。
对于更多行,首先获取所有匹配对象的获取请求的计数,然后生成0和计数之间的随机数,然后将其用作获取偏移量,将获取请求限制为一个结果。根据需要重复多个随机记录。
答案 1 :(得分:1)
据我所知,你不能随意排序"或直接从CoreData订购。它需要一个不会随机的对象内的密钥。
我会建议您获取所需的对象,将它们放入(可变)数组中,然后自己进行随机播放。网上有很多不同的改组算法,我会指出这个链接对我来说是最重要的:Shuffling an Array in Swift