在 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.
最佳答案
在 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
类型,您可以使用 <
运营商。
关于ios - Swift 2.0 按属性对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31729337/