Ich kämpfe mit dem Versuch, eine Reihe von Wörterbüchern zu sortieren.Die beste Methode zum Sortieren eines NSArray von NSDictionary-Objekten?
Figur Meine Wörterbücher ein paar Werte von Interesse, Preis, Beliebtheit usw.
Irgendwelche Vorschläge?
Ich kämpfe mit dem Versuch, eine Reihe von Wörterbüchern zu sortieren.Die beste Methode zum Sortieren eines NSArray von NSDictionary-Objekten?
Figur Meine Wörterbücher ein paar Werte von Interesse, Preis, Beliebtheit usw.
Irgendwelche Vorschläge?
Verwenden NSSortDescriptor
wie dieses ..
NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
stories = [stories sortedArrayUsingDescriptors:@[descriptor]];
recent = [stories copy];
stories
das Array Sie sortieren möchten. recent
ist ein weiteres veränderbares Array, das Wörterbuchwerte sortiert hat. Ändern Sie die @"interest"
mit dem Schlüsselwert, auf den Sie sortieren müssen.
Alles Gute
Schreiben Sie eine Sortierfunktion, die die relevanten Felder in zwei Wörterbüchern vergleicht. Wenn Sie diese Version haben, können Sie zum Beispiel NSArray#sortedArrayUsingFunction:context:
verwenden, um Ihr Array zu sortieren.
Siehe NSArray Class Reference
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Ich will nicht wirklich in mehrere Zeilen brechen. Es ist schon einfach genug für mich.
Update wird sortUsingDescriptors sortedArrayUsingDescriptors jetzt
So sein wie:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
Sie scheinen verwirrend zu sein - '[NSArray sortedArrayUsingDescriptors]' und - '[NSMutableArray sortUsingDescriptors]'. Die letzte existiert noch und wurde nicht ersetzt. – Dalzhim
Sie können nur Traverse von der übergeordneten auf die erforderliche Kind-Eigenschaft. Für z.B.
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
zu Array zuweisen Remember
+1 Dies ist bei weitem –
Vielen Dank Die einfachste Methode ist, macht Sinn und arbeitet – iOSDevil
Das ist gut, aber es entweicht. 1) der Sortierungsdeskriptor sollte freigegeben oder automatisch freigegeben werden und 2) Der Kopieraufruf wird nicht benötigt, die Zeile kann gelöscht werden. –