我用数据库中的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]
答案 0 :(得分:1)
您可以使用元组数组代替字典
var arr = [("CCC", 333), ("DDD",444), ("AAA",222), ("BBB", 111)]
arr.sort { return $0.1 < $1.1 }