11
votes

Comment puis-je trier Nsmutmédictionnement avec la valeur des clés?

J'ai un nsmutabledictionnerdictionner (code> avec les touches de chaîne et chaque touche a sa propre matrice. Je veux retirer le dictionnaire avec la valeur des clés alphabétiquement. Comment puis-je faire cela?


1 commentaires

J'ai désormais nsmutdicdictionner avec la valeur clé et je veux résoudre le même Nsmutabledictionner avec des valeurs clés par ordre alphabétique. Est-ce que cela est possible avec nsmutabledictionner?


3 Réponses :


19
votes

Un dictionnaire est non formé par définition.

Pour itération des touches dans un ordre spécifique, vous pouvez trier un tableau contenant les touches du dictionnaire. P>

NSArray *keys = [theDictionary allKeys];
NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compareMethod:)];


0 commentaires

8
votes

Utilisez celui-ci

NSArray *myKeys = [Dict allKeys];
NSArray *sortedKeys = [myKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSMutableArray *sortedValues = [[[NSMutableArray alloc] init] autorelease];

for(id key in sortedKeys) {
    id object = [Dict objectForKey:key];
    [sortedValues addObject:object];
}


3 commentaires

J'ai utilisé ce code pour récupérer le dictionnaire trié mais l'obtenir toujours non acheminé `code nsmutmédictionnel * dicprojectsListsTerted = [Dictionnaire Nsmutabledictionnerdictionner]; Nsarray * triéskeys = [Keys SortedarrayShySelector: @Selector (LocalizecaseSensivec ompare :)]; NsmutableArray * triéValues ​​= [[[[[[[[NsmutableArraRay Alloc] init] Autoréleuillet]; Pour (clé d'identité dans les triés) {ID Object = [DicProjectList ObjectForkey: clé]; [TriéValues ​​AddObject: Objet]; [DICPROJECTLISTRESSORTED SETOBJECT: TRIEDVALUES FORKEKEY: Touche]; }


à partir de ce code u obtenir la valeur de la clé courte, puis par la valeur de clé u obtenez vos données


triés obtenus comme triés comme triés, mais quand j'essaie de recréer le dictionnaire (DicProjectsListsListed) à l'intérieur d'une boucle, je l'obtiens instamment ??



2
votes
NSDictionary *yourDictionary;
NSArray *sortedKeys = [yourDictionary.allKeys sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]];
NSArray *sortedValues = [yourDictionary objectsForKeys:sortedKeys notFoundMarker:@""];

0 commentaires