我可以NSDictionary根据钥匙进行排序吗?
是否有模拟 - (NSArray*)keysSortedByValueUsingSelector:(SEL)比较器在swift中?
如何在不转换为NSDictionary的情况下执行此操作?
我试过这个,但似乎不是一个好的解决方案.
var values = Array(dict.values)
values.sort({
$0 > $1
})
for number in values {
for (key, value) in dict {
if value == number {
println(key + " : \(value)");
dict.removeValueForKey(key);
break
}
}
}
Run Code Online (Sandbox Code Playgroud)
例:
var dict = ["cola" : 10, "fanta" : 12, "sprite" : 8]
dict.sortedKeysByValues(>) // fanta (12), cola(10), sprite(8)
Run Code Online (Sandbox Code Playgroud) 我是Swift Lang的新手,看过很多教程,但目前还不清楚 - 我的问题是Array,Set和Dictionary集合类型之间的主要区别是什么?
我正在学习迅速并试图理解词典.我已经习惯了PHP,你可能会写下以下内容......
$dataPoints = Array("A"=>1,"B"=>2,"C"=>3);
foreach($dataPoints as $value) {
echo($value);
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,值将按顺序输出 - 1,2,3
我的快速代码看起来像这样......
var dataPoints: Dictionary<String,Int> = ["A":1,"B":2,"C":3]
for (key, value) in dataPoints {
print(value)
}
Run Code Online (Sandbox Code Playgroud)
但是,这些值会以意想不到的顺序出现.有什么东西可以做,以保持值的创建顺序,或者一个快速的字典永远不会被排序?
我有一个类型的字典[Int : String],我想按键排序,然后将其转换为数组。例如:
let dict : [Int : String] = [18 : "Maya", 13 : "Ori", 49 : "Mom", 21 : "Lital", 51 : "Dad"]
// After convertion:
// ["Ori", "Maya", "Lital", "Mom", "Dad"]
Run Code Online (Sandbox Code Playgroud)
我怎么做?我只知道如何dict通过执行转换为数组Array(dict.values),但它并没有以正确的顺序进行转换。
谢谢
swift ×4
dictionary ×3
arrays ×2
sorting ×2
collections ×1
key ×1
nsdictionary ×1
objective-c ×1
set ×1