And*_*nov 4 objective-c nsdictionary ios ios5
我有一个字典,其键由NSNumbers 组成.我使用keysSortedByValueUsingComparator如下:
NSArray *sortedKeys = [self.platformDict keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [(NSNumber*)obj2 compare:(NSNumber*)obj1];
}];
Run Code Online (Sandbox Code Playgroud)
然而,这是我得到的结果:
(lldb) po sortedKeys
(NSArray *) $1 = 0x0704bd20 <__NSArrayI 0x704bd20>(
100000,
250000,
1000000,
500000,
3000000,
2000000,
5000000,
10000000
)
Run Code Online (Sandbox Code Playgroud)
这是不正常的.这是方法实现的错误还是这里有另一个问题?
也许你误解了这种keysSortedByValue:...方法的作用.它不对键进行排序(为此您只需对返回的数组进行排序allKeys),而是对值进行排序,然后将它们的顺序应用于键.
所以,假设你有以下字典:
{"Orange": 1, "Apple": 3, "Peach": 2}
Run Code Online (Sandbox Code Playgroud)
结果将是:
"Orange", "Peach", "Apple"
Run Code Online (Sandbox Code Playgroud)
因为它对应于值的排序顺序(1,2,3).
| 归档时间: |
|
| 查看次数: |
4671 次 |
| 最近记录: |