Tri NSArray dont beaucoup contiennent nombre
J'ai un NSArray qui est rempli avec des objets à partir d'un NSMuttableArray. La plupart de ces objets ont une valeur entière comme "1", "2", "3", "4", "5", parfois, il y a un nom comme "à la maison", "extrême-gauche", ou "d'extrême droite". Je suis en train de trier ce tableau en Objective C. à l'aide de sortedArrayUsingSelector:@selector(comparer:) fonctionne très bien quand j'ai moins de 10 éléments dans le tableau. mais quand il y a de plus j'ai commencer à obtenir "1", "10", "11", "12", "2", "3" type de choses. Toute aide serait grandement appréciée. Le code ne devrait pas retourner quoi que ce soit. Il a juste besoin de les trier et de les déplacer sur.
Code Original:
presetNamesSort = [[[NSMutableArray alloc]init]retain];
presetNamesSort = [presetNames sortedArrayUsingSelector:@selector(compare:)];
source d'informationauteur Ribbons Almark
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
NSArray
's-sortedArrayUsingComparator:
méthode pour obtenir un tableau trié à l'aide d'un bloc personnalisé. Je trouve cela plus pratique que de-sortedArrayUsingSelector:
parce que vous pouvez déclarer le comparateur en ligne, comme ceci:Cette retournera un tableau qui ressemble à ceci:
En général, il est assez agréable à l'utilisation de blocs, car ils éliminent la nécessité de créer des sélecteurs aléatoires qui s'exécutent amuk dans votre code.
essayez d'utiliser
-[NSString compare:options:]
avecNSNumericSearch
. À utiliser avec-sortedArrayUsingSelector:
vous devez envelopper la comparer appel dans une catégorie distincte de la méthode surNSString
:Pour le tri Décroissant
Et pour asending