swift parse:如何在查询后对对象进行洗牌?

时间:2015-03-17 15:06:25

标签: ios swift parse-platform

据我所知,解析时没有简单的随机查询功能。在查询对象后,有没有办法对对象进行洗牌?

query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in

        if (error == nil) {
            // shuffle objects here?
            PFObject.pinAllInBackground(objects, withName:"Card", block: nil)

有什么想法吗? 谢谢!

编辑: 我认为问题出在另一个角度。 当我在建议帖子中添加喜欢(感谢那个)改组的扩展时,它就像微风一样!

BUT!

query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in

        if (error == nil) {

            println(objects)

            var shuffled = objects.shuffled()

            println(shuffled)

            PFObject.pinAllInBackground(shuffled, withName:"Card", block: nil)

如您所见,我将对象固定到本地存储。

在我的下一个视图中,我再次从存储中提取这些数据:

var query = PFQuery(className: "Card")
query.fromLocalDatastore()
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in

     if (error == nil){
        println("from local store: \(objects)")

在这里,我再次按照与保存在数据库中相同的顺序存储数据......根本没有洗牌项目。

这不奇怪吗?

1 个答案:

答案 0 :(得分:0)

只需抓取对象并使用this answer中提供的shuffle方法对象:

var shuffledObjects = shuffle(objects)