ios - 如何给一个NSMutableDictionary可变字典排序

 housyou晶 发布于 2022-10-28 12:57

如何给一个可变字典按照key(首字母)的来排序啊。有没有好的办法。。求教,谢谢!

NSMutableDictionary *dict=[NSMutableDictionary dictionary];

dict[@"app_key"]=@"2362558";    
dict[@"fields"]=@"open_iid ";
dict[@"format"]=@"json";
ict[@"method"]=@"22222";
dict[@"timestamp"]=@"222222";
dict[@"v"]=@"2.0";
dict[@"sign_method"]=@"md5";
5 个回答
  • 我觉得排序没有用啊,到时候你用的时候还是要根据键取值

    2022-11-12 01:44 回答
  • 你还是说一下你要解决什么问题吧。你的要求和字典的设计是相违背的,但是可以用其他的辅助方法实现,比如用另外一个array保存key,需要值的时候再从map取值。

    2022-11-12 01:44 回答
  • https://github.com/sunbohong/...

    我今天刚写了一个库,可以自定义排序。

    用法

    SunSortMutableDictionary *dic = [SunSortMutableDictionary new];
        dic.comparator = ^(NSString* obj1,NSString* obj2){
            return  [obj1 compare: obj2];
        };
    
        dic[@"a"]  = @"a";
        dic[@"c"]  = @"c";
        dic[@"e"]  = @"e";
        NSData *data=[NSJSONSerialization dataWithJSONObject:dic options:0 error:NULL];
        NSString *str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
        //str 的值为: @"{"a":"a","c":"c","e":"e"}";
    
        XCTAssert([str isEqualToString:@"{\"a\":\"a\",\"c\":\"c\",\"e\":\"e\"}"]);
     
    2022-11-12 01:44 回答
  • 字典本来就是无序的啊。

    2022-11-12 01:44 回答
  • 字典结构是哈希,哈希表内部按照Hashcode来排序的。我们无法排序,结构上来说,你如果想要一个顺序的集合的话。这个叫数组。所以你还是换成NSArray吧

    2022-11-12 01:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有