49 votes

Comment trier un NSMutable Array avec des NSNumbers dedans?

Je suis en train d'essayer de créer un tableau de scores, et je suis nul en tableaux en objective c (en fait, en général, objective c est un défi pour moi), donc je ne peux pas comprendre comment trier. J'essaie de faire quelque chose comme ça (pseudocode, j'écris ceci dans le style actionscript car je suis plus à l'aise avec) :

highscores.addObjectToArray(score)
highscores.sort(ascending)

Mais je n'arrive pas à comprendre... J'ai vu d'autres discussions à ce sujet, mais elles utilisent des fichiers plist et des trucs et je ne connais pas assez bien l'objective c pour apprendre d'eux.

0voto

Rahul Patel Points 139

La distance est une clé et sa valeur est un lien (flottant ou double)

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"distance"
ascending:YES
comparator:^(id obj1, id obj2)
                     {
                  return [obj1 compare:obj2 options:NSNumericSearch];
                     }];
NSArray *myArray = [NSArray arrayWithArray:arraySubCat];
myArray=[myArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sortDescriptor,nil]];
arraySubCat = [myArray copy];

-1voto

Ramdhas Points 1723

Pour l'ordre décroissant :

NSArray *DescendingArray = [MinMaxArray sortedArrayUsingDescriptors:
                                @[[NSSortDescriptor sortDescriptorWithKey:@"doubleValue"
                                                                ascending:NO]]];

Pour l'ordre croissant

NSArray *AscendingArray = [MinMaxArray sortedArrayUsingDescriptors:
                                @[[NSSortDescriptor sortDescriptorWithKey:@"doubleValue"
                                                                ascending:YES]]];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X