ios objective-c sorting nsarray nsdictionary

ios - ¿La mejor forma de ordenar un NSArray de objetos NSDictionary?



objective-c sorting (6)

Actualización, sortUsingDescriptors ahora sortedArrayUsingDescriptors

Entonces, es como:

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

Estoy luchando con tratar de ordenar una variedad de diccionarios.

Mis diccionarios tienen un par de valores de interés, precio, popularidad, etc.

¿Alguna sugerencia?


Escriba una función de clasificación que compare los campos relevantes en dos diccionarios. Cuando tenga esta versión, puede, por ejemplo, usar NSArray#sortedArrayUsingFunction:context: para ordenar su matriz.

Ver referencia de clase NSArray


Solo puede atravesar desde el elemento primario hasta la propiedad secundaria requerida. Por ej.

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


Use NSSortDescriptor esta manera ...

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

stories es la matriz que desea ordenar. recent es otra matriz mutable que tiene valores de diccionario ordenados. Cambia el @"interest" con el valor clave sobre el que debes ordenar.

Todo lo mejor


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

Realmente no quiero dividirlo en múltiples líneas. Ya es lo suficientemente simple para mí.


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

Recuerde asignar a la matriz