Sto lottando con il tentativo di ordinare una serie di dizionari.Il modo migliore per ordinare un NSArray di oggetti NSDictionary?
miei dizionari hanno un paio di valori di interesse, prezzo, popolarità ecc
Qualche suggerimento?
Sto lottando con il tentativo di ordinare una serie di dizionari.Il modo migliore per ordinare un NSArray di oggetti NSDictionary?
miei dizionari hanno un paio di valori di interesse, prezzo, popolarità ecc
Qualche suggerimento?
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
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.
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
non voglio veramente rompere in più righe. È già abbastanza semplice per me.
Update, sortUsingDescriptors è ormai sortedArrayUsingDescriptors
Quindi, è come:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
Sembra confondere - '[NSArray sortedArrayUsingDescriptors]' e - '[NSMutableArray sortUsingDescriptors]'. L'ultimo esiste ancora e non è stato sostituito. – Dalzhim
Si può solo traversata dal padre per la proprietà figlio desiderato. Ad es.
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Ricordati assegnare ai matrice
1 Questo è di gran lunga il metodo più semplice –
Grazie, senso e funziona – iOSDevil
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. –