2010-11-02 28 views
0

Je veux trier un tableau afin que les trémas soient traités comme des versions normales des caractères (ä == a, etc.). J'ai pensé que localizedCaseInsensitiveCompare: devrait faire l'affaire. Mais ce n'est pas le cas. N'importe qui?Tri des trémas d'igonring NSArray

Meilleur
-f

Répondre

3

localizedCaseInsensitiveCompare: compare avec les règles standard dans la langue actuelle choisie par l'utilisateur, en ignorant le cas. Dans votre cas, vous voulez ignorer les signes diacritiques, pas le cas. Cela signifie que vous devez faire autre chose. Vous devez utiliser compare:options: et transmettre NSDiacriticInsensitiveSearch en option. voir here.

Pour trier un tableau à l'aide, vous devez soit utiliser un bloc à l'aide sortedArrayUsingComparator:, ou mettre en œuvre une méthode de catégorie NSString et passez ce sélecteur à sortedArrayUsingSelector:. N'oubliez pas de préfixer le nom de la méthode category afin qu'elle ne chevauche pas une méthode privée dans le framework. Donc, faites quelque chose comme

@interface NSString (myaddition) 
-(NSComparisonResult)mySecretDiacriticsInsensitveCompare:(NSString*)string; 
@end 
+0

Salut merci, je l'ai fait en utilisant la catégorie sur 'NSString'. – flohei