sorting包含NSDate对象的NSArray

我有一个包含NSDate对象的数组。 通过使用Objective-C,我可以使用以下命令对数组进行sorting:

 NSArray *array = [unsortedArray sortedArrayUsingSelector:@selector(compare:)] 

我想知道是否有一个Swift相当于做同样的事情。 在这里,Swift相对比较新,骇人听闻。

在Swift中使用本地Arraytypes。 如果你正在与来自ObjC的遗留代码接口,使用这个:

 let array = unsortedArray.sortedArrayUsingSelector("compare:") 

如果你使用Swift数组。

 let datesArray = [ NSDate(), NSDate(timeIntervalSinceNow: 60), NSDate(timeIntervalSinceNow: -60) ] let sorter: (NSDate, NSDate) -> Bool = { $0.compare($1) == .OrderedAscending } let sortedDatesArray = datesArray.sort(sorter) 

你可以使你的NSDate符合Comparable协议,然后你可以像使用数字数据types一样对它进行比较:

 extension NSDate: Comparable {} public func <(lhs: NSDate, rhs: NSDate) -> Bool { return lhs.compare(rhs) == .OrderedAscending } var dates = [NSDate(),NSDate(timeIntervalSinceNow: -600)] // ["Dec 28, 2015, 2:48 AM", "Dec 28, 2015, 2:38 AM"] dates.sortInPlace(<) dates // ["Dec 28, 2015, 2:38 AM", "Dec 28, 2015, 2:48 AM"]