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

Swift 按值对[String:String]字典排序,swift,Swift,这是我的字典: var _dict :[String:String]=[ "a":"h1", "b":"b1", "c":"j1", "e":"o1", "f": "m1", "g":"u1", "h":"r1" ] 我试着按值排序,如下所示: _dict = _dict.sort({ $0.1 > $1.

这是我的字典:

var _dict :[String:String]=[
            "a":"h1",
            "b":"b1",
            "c":"j1",
            "e":"o1",
            "f": "m1",
            "g":"u1",
            "h":"r1"
        ]
我试着按值排序,如下所示:

_dict = _dict.sort({ $0.1 > $1.1 })
但我得到了这个错误信息:

无法使用类型为“(@noescape((String,String),(String,String))->Bool”的参数列表调用“sort”


没有分类词典这回事。字典是无序的。您必须考虑其他您想做的事情,例如创建元组数组并对其排序

例如:

var arr = Array(_dict)
arr = arr.sort{ $0.1 > $1.1 }

字典id未排序,但您可以获得排序的键和值:

var _dict :[String:String]=[
"a":"h1",
"b":"b1",
"c":"j1",
"e":"o1",
"f": "m1",
"g":"u1",
"h":"r1"
]
//get the keys and sort them.
let keysAndValues = _dict.keys.sort().map { ($0, _dict[$0]!) }

Dict现在被转换成元组数组,元组的第一个元素是键,第二个元素是值。

字典根据定义是无序的集合类型,因此无法排序。@Maysam无需创建元组数组。如果对字典本身进行排序,结果自然会是一个元组数组。我想按值对它们进行排序:/