【发布时间】:2012-06-07 15:49:09
【问题描述】:
我试图先按值排序和 NSMutableDictionary,然后按键。我使用下面的代码按值排序:
NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithCapacity:10];
[dict setObject:[NSNumber numberWithInt:5] forKey:@"eblk"];
[dict setObject:[NSNumber numberWithInt:2] forKey:@"dstl"];
[dict setObject:[NSNumber numberWithInt:4] forKey:@"cast"];
[dict setObject:[NSNumber numberWithInt:4] forKey:@"breb"];
[dict setObject:[NSNumber numberWithInt:5] forKey:@"apts"];
NSArray *sortedKeys = [dict keysSortedByValueUsingComparator: ^(id obj1, id obj2)
{
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
然后我想根据键再次排序,所以我最终得到了一个这样的键数组:
sortedKeys : dict中对应的值
"apts": 5
“eblk”:5
“布雷布”:4
“演员”:4
“dstl”:2
我有第一个值排序,我只是不确定如何开始基于键的第二个排序。
我尝试先按键排序,然后按值排序,但没有奏效。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
为什么要对字典进行排序?字典是无序的集合,因此即使您对键或值进行排序,如果您记录字典,它们也不一定按该顺序排列。
标签: objective-c ios nsarray nsmutabledictionary