2010-10-08 8 views
0

J'ai un tableau de chaînes au format suivant 5_5_a, 10_10_a, 0_0_a 1_1_a etc. Je veux les trier par ordre croissant/décroissant. Quand j'utilise sortedArrayUsingSelector: @selector (compare :) J'obtiens 0_0_a, 10_10_a, 1_1_a, 5_5_a. J'ai essayé d'analyser chaque chaîne en 5 5 morceaux et de lancer un int puis de mettre ce premier élément dans le tableau avec addObject: myInteger mais j'ai reçu des avertissements lors de la compilation. S'il vous plaît laissez-moi savoir s'il me manque quelque chose. Merci MarkTrier les chaînes en ordre croissant

Répondre

0

Ceci est dû au fait que le code ascii de '_' est plus grand que '0'.

Je ne sais pas si vous pouvez changer '_' en '-' par exemple? Il va résoudre votre problème et vous serez en mesure d'utiliser sortedArrayUsingSelector.

Sinon, vous pouvez faire:

[str stringByReplacingOccurancesOfString:@"_" withString:@"-"] 

Ensuite sorte votre tableau et enfin remplacer '-' avec '_'.

(il est juste une solution ... pas le meilleur ^^)

+0

Merci pour votre aide, ce que je l'ai fait peut-être été pas la solution la plus élégante, mais je l'ai analysé la chaîne préfixé 0 à la première partie de la chaîne analysée, puis triée ascendante/descendante. – Mark

Questions connexes