Swift无法按值对字典排序[String:Int]

时间:2018-07-06 19:14:29

标签: swift

我用数据库中的Userid和时间戳创建了一个Dictionary。不幸的是,我存储在新词典中的结果始终是相同的顺序。如果我打印出密钥并值了,那是对的。

这是我的代码:

 func sortUsers(){
    let sorted = someProtocol.sorted {$0.value > $1.value}  // or {$0.value < $1.value} to sort using the dictionary values
    sortedValues.removeAll()

    for (idx,element) in sorted.enumerated(){
        let value = element.value
        let key  = element.key
        self.sortedValues[key] = value
        print("sorted Key and Value", sorted.key, sorted.value
        if idx == sorted.endIndex-1{
            self.downloadUserProfile(sortedValues: sortedValues)
            print("sorted", sortedValues)
        }
    }
}

第一次打印的输出:

  

排序的键和值vhsIe0nBBWQ0D9csBpLwgL4Mf293 9999999
  排序的键和值ZYpiuLBRJkcM1cK6tDctKYva7UB3 9999998

字典的输出:

  

已排序的[“ ZYpiuLBRJkcM1cK6tDctKYva7UB3”:9999998,“ vhsIe0nBBWQ0D9csBpLwgL4Mf293”:9999999]

1 个答案:

答案 0 :(得分:1)

您可以使用元组数组代替字典

var arr = [("CCC", 333), ("DDD",444), ("AAA",222), ("BBB", 111)]
arr.sort { return $0.1 < $1.1 }