Sto avendo un array nsmutable e in quell'oggetto quasi 50 -60 con nomi diversi, e posso ordinare questo array in ordine alfabetico (è possibile, come?)
risposte:
14 per risposta № 1Per un tipo semplice come questo, mi piace usare i descrittori di ordinamento.
Supponiamo di avere una matrice mutevole di oggetti la cui classe ha a name
Proprietà NSString:
NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];
8 per risposta № 2
Assolutamente, puoi usare sortUsingSelector:
per questo:
[myArray sortUsingSelector:@selector(compare:)];
Se l'array contiene oggetti personalizzati, sarà necessario implementare un metodo di ordinamento su tali oggetti:
@implementation myCustomObject
...
-(NSComparisonResult) compare:(myCustomObject*) other {
return [self.name compare:other.name];
}
@end
2 per risposta № 3
L'approccio di TechZen funziona bene, ma funzionerebbemeglio se hai usato NSSortDescriptor "s + sortDescriptorWithKey: ascendente: selector :, passando" localizedCompare: "come selettore, in questo modo l'ordinamento è localizzato nella lingua dell'utente, il che può fare una grande differenza nel confronto tra stringhe.
0 per risposta № 4
myArray=[myDict keysSortedByValueUsingSelector:@selector(compare:)];
Semplicemente ha funzionato per me!