Swift 2 中是否有任何函数可以按升序或降序对NSDate
的一维Array
进行排序,而无需编写我自己的排序算法?
我已经尝试了以下内容,但不幸的是>
不能用于比较两个 NSDate 对象。
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()
好的,一种方法是这样做的:
public func <(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == .OrderedAscending
}
然后只需根据需要对日期进行排序:
var array = [NSDate]()
array.sort { $0 < $1 }