Swift 2.0按属性sorting对象数组
在Swift 2.0中,你将如何去sorting一个属性的自定义对象数组? 我知道在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. 在Swift 2中:
- 
您可以使用 sort方法,使用compare来比较两个date:let sortedArray = myArray.sort { $0.myDate.compare($1.myDate) == .OrderedAscending } // use `sorted` in Swift 1.2
- 
或者,如果你想sorting原始数组,你可以 sortInPlace:myArray.sortInPlace { $0.myDate.compare($1.myDate) == .OrderedAscending } // use `sort` in Swift 1.2
在Swift 3:
- 
返回数组的 sorted,使用sorted,而不是sortlet sortedArray = myArray.sorted { $0.myDate < $1.myDate }
- 
sorting到位,现在只是 sort:myArray.sort { $0.myDate < $1.myDate }
 而使用Swift 3的Datetypes,你可以使用<运算符。 
如果你想sorting自定义对象的原始数组。 这是Swift 2.1中的另一种方法
 var myCustomerArray = [Customer]() myCustomerArray.sortInPlace {(customer1:Customer, customer2:Customer) -> Bool in customer1.id < customer2.id } 
 其中id是一个整数。 你也可以使用相同的< operator作为String 。 
您可以通过查看示例来了解更多关于它的用法: Swift2:Near Customers
在迅速3.0
我已经采取了与问题中提出的例子相同的假设。
即customObject是带有variablesmyDate的MyObject。 MyObject的数组是myArray.We可以简单地sorting。
 myArray.sort(by: { (one: MyObject, two: MyObject) -> Bool in one. myDate < two. myDate }) 
sorting现在sortInPlace(或类似的)与sorting相同的参数。