2 mapmapm MapMapM 于 2012.10.10 16:22 提问

iphone想要获得预期结果

有一个未分组的NSMutableDictionary

 {  
      A= "3";     
      B= "2";      
      C= "4";   
 }

我想要的结果是这样:

{     
      B= "2";   
      A= "3"; 
      C= "4";   
 }

如何在objectivec中获得结果?

多谢~

2个回答

Chengzi_963
Chengzi_963   2012.10.11 14:26
已采纳

你不能通过值进行NSMutableDictionary 分组。如果改变NSArray的关键字和赋值的话,可以。代码如下:

NSMutableDictionary *results; 
    NSArray *sortedKeys = [results keysSortedByValueUsingComparator: ^(id obj1, id obj2) {
        if ([obj1 integerValue] > [obj2 integerValue]) 
            return (NSComparisonResult)NSOrderedDescending;
        if ([obj1 integerValue] < [obj2 integerValue])
            return (NSComparisonResult)NSOrderedAscending; 
        return (NSComparisonResult)NSOrderedSame;
    }];
    NSArray *sortedValues = [[results allValues] sortedArrayUsingSelector:@selector(compare:)];


    for (int s = ([sortedValues count]-1); s >= 0; s--) {
        NSLog(@" %@ = %@",[sortedKeys objectAtIndex:s],[sortedValues objectAtIndex:s]); 
    }

    for (int s = 0; s < [sortedValues count]; s++) {
        NSLog(@" %@ = %@",[sortedKeys objectAtIndex:s],[sortedValues objectAtIndex:s]); 
    }
MrsSeven7
MrsSeven7   2012.10.11 14:51

NSMutableDictionary不能这样用。它不是分类结构。把它转换为NSArray形式。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!