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 Antworten

Nehmen 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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage