0
Swift 2中是否有函數按照升序或降序對NSDate
的一維Array
s進行排序,而無需編寫自己的排序算法?在Swift中對NSDate對象的單維數組進行排序
我試過以下,但>
不能用來比較兩個NSDate的不幸對象。
var array = [NSDate]()
array.sort { $0 < $1 }
Swift 2中是否有函數按照升序或降序對NSDate
的一維Array
s進行排序,而無需編寫自己的排序算法?在Swift中對NSDate對象的單維數組進行排序
我試過以下,但>
不能用來比較兩個NSDate的不幸對象。
var array = [NSDate]()
array.sort { $0 < $1 }
好吧,這樣做的一個辦法:
public func <(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == .OrderedAscending
}
然後只是排序日期像你想:
var array = [NSDate]()
array.sort { $0 < $1 }
可以通過同時宣佈進一步採取綏靖的回答一步NSDate
符合Comparable
:
public func ==(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.isEqualToDate(rhs)
}
public func <(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == .OrderedAscending
}
extension NSDate: Comparable { }
然後你可以使用sort()
沒有提供比較:
let dates = [NSDate]()
dates.sort()
Tthere已經是一個''==操作符'NSObject',沒有必要實現它的子類(如'NSDate')。 –
@MartinR,你是對的 – pacification