web-dev-qa-db-fra.com

Comment puis-je trier un NSMutableArray par ordre alphabétique?

Je souhaite trier un NSMutableArray par ordre alphabétique.

22
Ali

Vous pouvez le faire pour trier NSMutableArray:

[yourArray sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

Les autres réponses fournies ici mentionnent l'utilisation de @selector (localizedCaseInsensitiveCompare :)
Cela fonctionne très bien pour un tableau de NSString, cependant l'OP a commenté que le tableau contient des objets et que le tri doit être effectué selon la propriété object.name.
Dans ce cas, procédez comme suit:

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
[yourArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];

Vos objets seront triés en fonction de la propriété name de ces objets.

47
JP Hribovsek
NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; // Describe the Key value using which you want to sort. 
NSArray * descriptors = [NSArray arrayWithObject:valueDescriptor]; // Add the value of the descriptor to array.
sortedArrayWithName = [yourDataArray sortedArrayUsingDescriptors:descriptors]; // Now Sort the Array using descriptor.

Ici, vous obtiendrez la liste des tableaux triés.

1
Annu

Utilisez la classe NSSortDescriptor et reposez-vous, vous obtiendrez tout ici

0
Sudhanshu

Peut-être que cela peut vous aider:

[myNSMutableArray sortUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"firstName" ascending:YES],[NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:YES]]];

Tout est selon NSSortDescriptor ...

0
Gonzer
NSSortDescriptor * sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Name_your_key_value" ascending:YES];
NSArray * sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
NSArray * sortedArray;
sortedArray = [Your_array sortedArrayUsingDescriptors:sortDescriptors];
0
Maulik Pandya