基于与swift中的键相关联的元组的值对字典键进行排序

时间:2014-10-06 09:26:26

标签: ios sorting dictionary swift

我目前有一个[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))]

我只有一种简单的方法来检索字符串数组吗?

1 个答案:

答案 0 :(得分:3)

ret = sorted(self.dictionary, ...)返回(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
}