一尘不染

Swift 2.0按属性对对象数组进行排序

swift

在Swift 2.0中,您将如何按属性对自定义对象数组进行排序?我知道在Swift
1.2中,这是使用sorted()和sort()完成的。但是,这些方法在Xcode 7 beta 4中不再起作用。谢谢!

例如:

class MyObject: NSObject {
    var myDate : NSDate
}

...

let myObject1 : MyObject = MyObject() //same thing for myObject2, myObject3

var myArray : [MyObject] = [myObject1, myObject2, myObject3]

//now, I want to sort myArray by the myDate property of MyObject.

阅读 197

收藏
2020-07-07

共1个答案

一尘不染

在Swift 2中:

  • 您可以使用sort方法,使用compare来比较两个日期:

    let sortedArray = myArray.sort { $0.myDate.compare($1.myDate) == .OrderedAscending }  // use `sorted` in Swift 1.2
    
  • 或者,如果您想对原始数组进行排序,则可以sortInPlace

    myArray.sortInPlace { $0.myDate.compare($1.myDate) == .OrderedAscending }  // use `sort` in Swift 1.2
    

在Swift 3中

  • 返回数组的排序形式,请使用sorted,而不是sort

    let sortedArray = myArray.sorted { $0.myDate < $1.myDate }
    
  • 排序,现在只是sort

    myArray.sort { $0.myDate < $1.myDate }
    

使用Swift 3的Date类型,您可以使用<运算符。

2020-07-07