27 votes

iPhone CoreData - Comment récupérer des objets gérés et les trier en ignorant la casse?

Quelqu'un sait-il comment récupérer des résultats en les triant par ordre alphabétique mais en ignorant la casse?

70voto

vfn Points 4573

Merci pour votre réponse, mais j'ai besoin de trier le résultat d'une simple "requête" ignorant la casse. Votre suggestion s'applique pour la recherche et la comparaison.

SQL parler, j'ai besoin d'un ORDER BY firstName ASC, et cette commande doit être sensible à la casse pour mon utilisation.

J'ai fait quelques recherches sur Google et j'ai fini la lecture de la NSSortDescriptor de référence de Classe, et j'ai pu trouver la réponse à ma question. La solution est de fixer un sélecteur pour le tri descripteur comme suit:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(caseInsensitiveCompare:)];

J'espère que ce sera utile pour plus de personnes.

9voto

MonsieurDart Points 3133

Si l'application est localisée dans plusieurs langues, veuillez envisager d'utiliser le sélecteur localizedCaseInsensitiveCompare: au lieu de caseInsensitiveCompare . Cela aura pour effet d'éviter que la lettre «é» soit postérieure à la lettre «e».

 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
 

4voto

Ben Gottlieb Points 59900

Consultez le guide de programmation NSPredicate , mais utilisez essentiellement [c] pour ignorer la casse:

 @"firstName BEGINSWITH[c] $FIRST_NAME"
 

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