我这里有一个带有顺序的字典:
var pickerData = [
"en":"abc",
"jp":"xyz",
"fr":"gya",
"zh-CN":"uio"]
但是当我使用println()打印pickerData.keys.array时,顺序并不像上面那样。我想按照上述顺序对pickerData.keys.array进行排序,这可能吗?
这是如何对键数组进行排序的:
let sortedKeys = sorted(pickerData.keys.array, {
(s1: String, s2: String) -> Bool in
return s1 < s2
})
只需更改返回语句即可将排序逻辑更改为符合您要求的逻辑。
sort
方法进行原地排序var array = pickerData.keys.array as [String]
array.sort(<)
array
按字母顺序排序。需要复制键数组的原因是sort
是就地排序,这在不可变数组上显然不可能。自从Swift 4和5以来,这变得更加容易了:
for mySortedKey in pickerData.keys.sorted() {
[....]
}