2010-03-06 16 views

Antwort

191

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

+2

+1 Dies ist bei weitem –

+0

Vielen Dank Die einfachste Methode ist, macht Sinn und arbeitet – iOSDevil

+11

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. –

0

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

25
[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.

+0

NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey: @ "Name" aufsteigend: YES]; [resultArray1 sortUsingDescriptors: [NSArray arrayWithObjects: deskriptor, nil]]; – johndpope

+1

Bessere Antwort .... !! – TheTiger

4

Update wird sortUsingDescriptors sortedArrayUsingDescriptors jetzt

So sein wie:

items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; 
+0

Sie scheinen verwirrend zu sein - '[NSArray sortedArrayUsingDescriptors]' und - '[NSMutableArray sortUsingDescriptors]'. Die letzte existiert noch und wurde nicht ersetzt. – Dalzhim

10

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]; 
+0

Du kleiner Stern. Das half mir, ein Unterwörterbuch zu sortieren. Danke vielmals! – Rambatino

+0

können Sie diese Stimme dann –

+0

vlot abstimmen Es beantwortet die Frage nicht! – Rambatino

0
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]]; 

zu Array zuweisen Remember
Verwandte Themen