2 for 2012 for_2012 于 2013.06.05 14:19 提问

升序排列NSDictionary

要升序排列一个NSDictionary,使用如下代码:

NSDictionary *valDict = self.mGetDataDict[key][rowKey];

for (NSString *valueKey in
     [[valDict allKeys] sortedArrayUsingSelector:@selector(compare:)])
{                
    if ([valueKey isEqualToString:@"attr"])
    {
        dictRow = self.mGetDataDict[key][rowKey][valueKey];
    }
    else {
        NSString *valKey = self.mGetDataDict[key][rowKey][valueKey];
        [arrSeatsStatus addObject:valKey];
    }
}

输入结果:

1 = off;
10 = off;
2 = on;
3 = on;
4 = on;
5 = on;
6 = on;
7 = on;
8 = on;
9 = on;

需要的结果:

1: "off",
2: "on",
3: "on",
4: "on",
5: "on",
6: "on",
7: "on",
8: "on",
9: "on",
10: "off"

需要的结果是JSON中存在的值。

1个回答

zhanglei5415
zhanglei5415   Rxr 2013.06.06 14:21

不知道你的json是什么样的格式.是如下这种吗?

{"1":"off","10":"off","2":"on", "3":"on"}

如果是.且我们看到key是整型的话,你可以这样比较来拿到正确的排序结果

NSArray *sortKeys=[[valDict allKeys] sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        return [obj1 intValue] > [obj2 intValue];
}];

NSLog(@"sort key:%@",sortKeys);
for (NSString *valueKey in sortKeys) {
    ......
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
NSDictionary (字典API+排序)
//初始化 //1.1可以用新方法失现初始化 NSDictionary* dic = @{@"a":@"1",@"c":@"2",@"b":@"1",@"e":@"1",@"z":@"1"}; // NSDictionary* dic = @{@"0":@"1",@"3":@"2",@"2":@"1",@"4":@"1",@"1":@"1"}; NSDictiona
IOS中 NSDictionary(字典)排序
按NSDictionary的key来对其进行排序: 先将dict的allkeys赋给一个数组,然后通过sortedArrayUsingComparator:方法对数组排序,然后遍历数组取字典对应key的值就ok int i = 0;          NSArray *keys = [dict allKeys];     NSArray *sortedArray =
NSArray排序方法 从网上查的,非常方便的排序api,功能也很强大 1.sortedArrayUsingSelector (按Key值大小对NSDictionary排序) 复制代码 NSMu
NSArray排序方法 从网上查的,非常方便的排序api,功能也很强大 1.sortedArrayUsingSelector (按Key值大小对NSDictionary排序) NSMutableArray *array = [NSMutableArray arrayWithObjects: [NSDictionary
NSDictionary里的keysSortedByValueUsingSelector排序时使用
NSString* keyName[] = ", @"123123", @"123", @"1",nil}; NSString* values[] = ", @"23.5", @"89.12", @"333.2", nil}; // NSDictionary* dic = [NSDictionary dictionaryWithObjects:(id*)keyName forKeys:(
FlexGrid的升序和降序排列
FlexGrid的升序和降序排列 FlexGrid的升序和降序排列 FlexGrid的升序和降序排列 FlexGrid的升序和降序排列
DataGrid升序和降序排列
DataGrid升序和降序排列 DataGrid升序和降序排列 DataGrid升序和降序排列 DataGrid升序和降序排列
重要经验六 NSDictionary排序
集合类,比如NSArrray
将字典中得key按照首字母排序
NSDictionary *dict = @{@"key":@2,@"anna":@1,@"hello":@3,@"ok":@4}; NSArray *keysArray = [dict allKeys]; NSArray *resultArray = [keysArray sortedArrayUsingComparator:^NSComparisonResult(id obj
iOS下单签名串之字典通过key值进行降序排列
1.下单的时候,用于签名的原始串是一个参数的集合,有时候需要我们进行排序。假如用于签名的字段有,name,age,sex,三个字段。我们可以在下单接口中先定义一个字典,将数据传进来即可。//我们用于排序的字段 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"Danny",@"name",@"12",@"age",@"
数据库的升序降序排列
数据库中使用order by语句进行排序,其中升序用asc,降序用desc。 如: select * from t order by 列a asc; -- 这是升序 asc可以省略不写 select * from t order by 列a desc; --这是降序