Ziel-C, sortiere ein Array von Strings, die Zahlen enthalten [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie mache ich eine natürliche Sortierung auf einem NSArray? 5 AntwortenNehmen wir an, ich habe ein Array wie dieses
NSArray* arr = @[@"1",@"4",@"2",@"8",@"11",@"10",@"14",@"9"]; //note: strings containing numbers
und ich möchte sie so sortieren: [1,2,4,8,9,10,11,14]
aber wenn ich benutze
[arr sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Ich bekomme [1,10,11,14,2,4,8,9] ... und wenn ich benutze:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"length" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
[arr sortedArrayUsingDescriptors:sortDescriptors];
Ich bekomme so etwas: [1,4,2,8,9,11,10,14]
Wie kann ich beide Prädikate kombinieren? oder ist eine andere einfachere möglichkeit dies zu lösen? Anmerkung: Die Ausgabe dieses Arrays dient nur zu Debug-Zwecken. Es ist mir egal, ob das Ergebnis das Array in Ganzzahlen umwandelt, solange ich dank NSLog in der Konsole drucken kann