如何按x位置的升序对数组进行排序

时间:2015-11-16 14:51:50

标签: arrays swift sorting sprite-kit swift2

我有一组矩形对象,我已经在数组rectangles中填充了这些对象。每个矩形都有各种属性,纹理,位置等。如何对矩形数组进行排序,以便按x位置的升序排列对象。例如,可以通过以下方式访问x position属性。

rectangles[0].sprite.position.x

我愿意接受一个比排序更快或更有效的问题的解决方案。

2 个答案:

答案 0 :(得分:3)

使用sort()方法。 let sortedRectangles = rectangles.sort {$0.sprite.position.x < $1.sprite.position.x}

答案 1 :(得分:2)

rectangles是一个范围为(x,y)的数组:

    func backwardsX(s1: (CGFloat,CGFloat), _ s2:  (CGFloat,CGFloat)) -> Bool {
        return s1.0 > s2.0
    }
    let result    = rectangles.sort(backwardsX)

即使在一行中:

let result = rectangles.sort( { s1, s2 in return s1.0 > s2.0 } )

let result = rectangles.sort( { $0.0 > $1.0 } )