2016-03-10 117 views
0

我想按日期排序一個多維數組,因爲我想使用標題的tableview。 在tableview中,每個標題都是一個日期,並且下面會有一些事件。 首先,我一定值添加到我的數組:swift按日期排序[NSDate:[String]]

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中的錯誤是:元組類型的 值...沒有成員比較

如何按日期排序我的數組?

+0

測試字典<的NSDate:[字符串]>的陣列,因此它不是一個陣列(有序收集),但無序的收集 – user3441734

回答

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"])] 
*/ 

看到,結果是(鍵,值)對,而不是「排序」字典

+0

非常感謝信息。我是Swift的開始。在你看來,填充tableview的最佳做法是什麼? – Mic

+0

@Mic遵循一些Cocoa或Cocoa觸摸教程可能是最好的方法。如果您在特定代碼中遇到一些問題,請不要猶豫,問問stackoverflow社區。 – user3441734