我想将下面的代码转换为swift,其实我想不想使用nsdictionary的allKeys来松散键的顺序
NSArray *keys = [myDictionary allKeys];
keys = [keys sortedArrayUsingComparator:^(id a, id b) {
return [a compare:b options:NSNumericSearch];
}];
答案 0 :(得分:1)
你可以在Swift中做同样的事情:
.sort{i1, i2 -> i2.username.length <=> i1.username.length}
let myDictionary = ["100" : "foo", "2" : "bar"]
let keys = myDictionary.keys.sort {
$0.compare($1, options: .NumericSearch) == .OrderedAscending
}
print(keys) // ["2", "100"]
给出了所有字典的(懒惰集合)
键和可以排序。与之相反
myDictionary.keys
(其中一个块返回sortedArrayUsingComparator
,-1
,
或0
),+1
方法返回一个闭包
一个布尔值,如果lhs是&#34;较小&#34;则为sort()
比
RHS。
答案 1 :(得分:0)
Swift 3.0 版本
let myDictionary = ["100" : "foo", "2" : "bar"]
let keys = self.myDictionary.allKeys.sorted {
($0 as AnyObject).compare($1 as! String, options: .numeric) == .orderedDescending
}
print(keys) // ["2", "100"]
.orderedDescending
用于按降序对数组进行排序,其中.orderedAscending
用于按升序对数组进行排序。