Skip to main content
 首页 » 操作系统

ios之根据与 swift 中的键关联的元组的值对字典键进行排序

2024年01月01日34itcoder

我目前有一个类型为 [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) 元组。你可以 使用

提取 key
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 
}