我目前有一个类型为 [String: (Int, NSDate)] 的字典。我想获得一个按元组中的 NSDate 排序的键数组(在本例中是字符串)。
到目前为止,我能得到的最好的是这段代码:
var ret = sorted(self.dictionary, {
var tuple1 = $0.1 as (Int, NSDate)
var tuple2 = $1.1 as (Int, NSDate)
return tuple1.1.compare(tuple2.1) == NSComparisonResult.OrderedAscending
})
但这会返回以下类型的内容:[(String, (Int, NSDate))]
有没有简单的方法让我只检索字符串数组?
请您参考如下方法:
ret = sorted(self.dictionary, ...) 返回 array (key,value) 元组。你可以 使用
let keys = map(ret) { $0.0 }
或者,根据键在字典中的值对键进行排序:
let keys = sorted(self.dictionary.keys) {
(key1, key2) in
let tuple1 = self.dictionary[key1]!
let tuple2 = self.dictionary[key2]!
return tuple1.1.compare(tuple2.1) == NSComparisonResult.OrderedAscending
}
