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

如何给一个可变字典按照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";
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(5)
Peter_Zhu

La structure du dictionnaire est un hachage et la table de hachage est triée en interne selon le Hashcode. Nous ne pouvons pas trier, structurellement parlant, si vous voulez une collection séquentielle. C'est ce qu'on appelle un tableau. Alors tu ferais mieux de passer à NSArray

大家讲道理

Les dictionnaires sont intrinsèquement désordonnés.

Peter_Zhu

https://github.com/sunbohong/...

Je viens d'écrire aujourd'hui une bibliothèque qui peut personnaliser le tri.

Utilisation

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

Tu ferais mieux de me dire quel problème tu veux résoudre. Votre exigence est contraire à la conception du dictionnaire, mais elle peut être obtenue en utilisant d'autres méthodes auxiliaires, telles que l'utilisation d'un autre tableau pour enregistrer la clé, puis l'obtention de la valeur de la carte lorsque la valeur est nécessaire.

PHPzhong

Je pense que le tri est inutile. Lorsque vous l'utilisez, vous devez toujours obtenir la valeur en fonction de la clé

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal