Swift,allKeys,数组,字典,订单

时间:2015-10-31 12:06:43

标签: swift nsdictionary

我想将下面的代码转换为swift,其实我想不想使用nsdictionary的allKeys来松散键的顺序

 NSArray *keys = [myDictionary allKeys];
keys = [keys sortedArrayUsingComparator:^(id a, id b) {
    return [a compare:b options:NSNumericSearch];
}];

2 个答案:

答案 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用于按升序对数组进行排序。