【发布时间】:2015-07-15 07:09:23
【问题描述】:
我知道这个话题已经讨论过了,但我无法解决寻找其他答案,所以提前为我的成熟感到抱歉!
我需要按键排序这个字典
codeValueDict = ["us": "$", "it": "€", "fr": "€"]
所以我需要这样的字典
sortedDict = ["fr": "€", "it": "€", "us": "$"]
但我做不到。
我试过了
let sortedKeysAndValues = sorted(dictionary) { $0.0 < $1.0 }
但是在我需要从这个字典(键和值)创建两个数组并使用该解决方案之后
codesArray = sortedKeysAndValues.keys.array
给我错误'[(String, String)]' does not have a member named 'keys' 因为该解决方案不完全返回字典。
所以我尝试了另一种解决方案:
let prova = codiceNomeDict as NSDictionary
for (k,v) in (Array(codiceNomeDict).sorted {$0.1 < $1.1}) {
let value = "[\"\(k)\": \"\(v)\"]"
println(value)
}
这很好用,但我不知道如何创建一个新的 values 字典。
最好的解决方案是什么?如何让它发挥作用?
【问题讨论】:
-
您需要回到您要解决的问题。在您的示例中,
codeValueDict和sortedDict是完全相同的字典(因此,当您说“我需要这样的字典”时,您就有了)。您需要解决的问题是您要排序的内容。您的意思是要以特定顺序枚举值,还是您的意思是您想要以特定顺序的字符串表示形式,还是其他?这个函数的输出应该是什么?没有“有序字典”之类的东西。这在 Swift 中没有任何意义。
标签: swift sorting dictionary