2010-03-06 23 views

risposta

191

Usa NSSortDescriptor come questo ..

NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES]; 
stories = [stories sortedArrayUsingDescriptors:@[descriptor]]; 
recent = [stories copy]; 

stories è la matrice che si desidera ordinare. recent è un altro array mutabile che ha ordinato i valori del dizionario. Modificare @"interest" con il valore chiave su cui è necessario ordinare.

Tutto il meglio

+2

1 Questo è di gran lunga il metodo più semplice –

+0

Grazie, senso e funziona – iOSDevil

+11

Questo è buona, ma fa perdita. 1) il descrittore di ordinamento deve essere rilasciato o autorizzato automaticamente e 2) La chiamata di copia non è necessaria, la riga può essere cancellata. –

0

Scrivere una funzione di ordinamento che confronta i campi rilevanti in due dizionari. Quando hai questa versione puoi ad esempio utilizzare NSArray#sortedArrayUsingFunction:context: per ordinare la tua matrice.

Vedi NSArray Class Reference

25
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]]; 

non voglio veramente rompere in più righe. È già abbastanza semplice per me.

+0

NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey: @ "nome" crescente: SÌ]; [resultArray1 sortUsingDescriptors: [NSArray arrayWithObjects: descriptor, nil]]; – johndpope

+1

Risposta migliore .... !! – TheTiger

4

Update, sortUsingDescriptors è ormai sortedArrayUsingDescriptors

Quindi, è come:

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

Sembra confondere - '[NSArray sortedArrayUsingDescriptors]' e - '[NSMutableArray sortUsingDescriptors]'. L'ultimo esiste ancora e non è stato sostituito. – Dalzhim

10

Si può solo traversata dal padre per la proprietà figlio desiderato. Ad es.

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES]; 
+0

Sei piccola stella. questo mi ha aiutato a ordinare un sotto-dizionario secondario. Molte grazie! – Rambatino

+0

puoi votare quindi questo –

+0

Non risponde alla domanda! – Rambatino

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

Ricordati assegnare ai matrice

Problemi correlati