ios - 如何给一个NSMutableDictionary可变字典排序
黄舟
黄舟 2017-04-18 09:39:54
0
5
574

如何给一个可变字典按照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)
Peter_Zhu

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

    大家讲道理

    字典本来就是无序的啊。

      Peter_Zhu

      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\"}"]);
        巴扎黑

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

          PHPzhong

          我觉得排序没有用啊,到时候你用的时候还是要根据键取值

            최신 다운로드
            더>
            웹 효과
            웹사이트 소스 코드
            웹사이트 자료
            프론트엔드 템플릿
            회사 소개 부인 성명 Sitemap
            PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!