Arrays 在Swift中对NSDate对象的一维数组进行排序

Arrays 在Swift中对NSDate对象的一维数组进行排序,arrays,swift,sorting,swift2,nsdate,Arrays,Swift,Sorting,Swift2,Nsdate,Swift 2中是否有任何函数可以按升序或降序对NSDate的一维数组进行排序,而无需编写自己的排序算法 我尝试了以下方法,但不幸的是,无法用于比较两个NSDate对象 var array = [NSDate]() array.sort { $0 < $1 } var数组=[NSDate]() array.sort{$0

Swift 2中是否有任何函数可以按升序或降序对
NSDate
的一维
数组进行排序,而无需编写自己的排序算法

我尝试了以下方法,但不幸的是,
无法用于比较两个NSDate对象

var array = [NSDate]()
array.sort { $0 < $1 }
var数组=[NSDate]()
array.sort{$0<$1}

好的,一种方法是:

public func <(lhs: NSDate, rhs: NSDate) -> Bool {
    return lhs.compare(rhs) == .OrderedAscending
}
public func Bool{
返回lhs.compare(rhs)=.OrderedAscending
}
然后只需按照您的要求对日期进行排序:

var array = [NSDate]()
array.sort { $0 < $1 }
var数组=[NSDate]()
array.sort{$0<$1}

好的,一种方法是:

public func <(lhs: NSDate, rhs: NSDate) -> Bool {
    return lhs.compare(rhs) == .OrderedAscending
}
public func Bool{
返回lhs.compare(rhs)=.OrderedAscending
}
然后只需按照您的要求对日期进行排序:

var array = [NSDate]()
array.sort { $0 < $1 }
var数组=[NSDate]()
array.sort{$0<$1}

您还可以通过声明
NSDate
符合
Comparable
,进一步了解pacification的答案:

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 { }

您还可以通过声明
NSDate
符合
Comparable
,进一步了解pacification的答案:

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 { }

t对于
NSObject
,已经有一个
==
操作符,没有必要为子类(如
NSDate
)实现它。@MartinR,你是对的。
NSObject
已经有一个
=
操作符,没有必要为子类(如
NSDate
)实现它。@MartinR,你是对的