Swift 2.0按属性排序对象数组

fel*_*iao 39 sorting ios swift swift2

在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.
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 76

在Swift 2中:

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

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

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

在Swift 3中:

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


Han*_*nny 10

如果要对原始自定义对象数组进行排序.这是Swift 2.1中另一种方法

var myCustomerArray = [Customer]()
myCustomerArray.sortInPlace {(customer1:Customer, customer2:Customer) -> Bool in
        customer1.id < customer2.id
    }
Run Code Online (Sandbox Code Playgroud)

id整数在哪里.您也可以使用相同的<运算符String.

您可以通过查看示例来了解有关其使用的更多信息: Swift2:附近的客户