按日期快速排序[NSDate:[String]]

时间:2016-03-10 00:06:54

标签: uitableview sorting multidimensional-array swift2

我试图按日期对多维数组进行排序,因为我想用标题创建一个tableview。 在tableview中,每个标题都是一个日期,在下面会有一些事件。 首先,我将一些值添加到我的数组中:

import UIKit

extension String{
func toDateTime() -> NSDate{
    //Create Date Formatter
    let dateFormatter = NSDateFormatter()

    //Specify Format of String to Parse
    dateFormatter.dateFormat = "dd-MM-yyyy"

    //Parse into NSDate
    let dateFromString : NSDate = dateFormatter.dateFromString(self)!

    //Return Parsed Date
    return dateFromString
}
}

var test = [NSDate: [String]]()
test["10-05-2015".toDateTime()] = ["some event", "another event"]
test["11-06-2014".toDateTime()] = ["test event", "test event2", "test event3"]
test["19-03-2013".toDateTime()] = ["super event", "superevent2", "super event3", "super event4"]

之后我尝试:

test.sort({ $0.compare($1) == .OrderedDescending})

Xcode的错误是: 元组类型的值...没有成员比较

如何按日期排序我的数组?

1 个答案:

答案 0 :(得分:2)

let arr = test.sort { $0.0.compare($1.0) == .OrderedDescending }
print(arr)
/*
[(2015-05-09 22:00:00 +0000, ["some event", "another event"]), (2014-06-10 22:00:00 +0000, ["test event", "test event2", "test event3"]), (2013-03-18 23:00:00 +0000, ["super event", "superevent2", "super event3", "super event4"])]
*/

看,结果是(键,值)对的数组,而不是'排序'字典