2010-03-06 13 views

Respuesta

191

Uso NSSortDescriptor como esto ..

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. Cambie el @"interest" con el valor de clave sobre el que debe ordenar.

Todo lo mejor

+2

1 Esto es, con mucho, el método más simple –

+0

Muchas gracias, tiene sentido y funciona – iOSDevil

+11

Esto es bueno, pero se escapa. 1) el descriptor de clasificación debe ser liberado o liberado automáticamente, y 2) la llamada de copia no es necesaria, la línea puede ser eliminada. –

0

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 NSArray Class Reference

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

Realmente no quiero romperlo en varias líneas. Ya es lo suficientemente simple para mí.

+0

NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey: @ "nombre" ascendente: SÍ]; [resultArray1 sortUsingDescriptors: [NSArray arrayWithObjects: descriptor, nil]]; – johndpope

+1

¡Mejor respuesta ...! – TheTiger

4

actualización, sortUsingDescriptors está ahora sortedArrayUsingDescriptors

Por lo tanto, es como:

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

Parece ser confuso: '[NSArray sortedArrayUsingDescriptors] 'y -' [NSMutableArray sortUsingDescriptors] '. La última todavía existe y no ha sido reemplazada. – Dalzhim

10

Usted puede simplemente travesía de los padres al niño la propiedad requerida. Por ej.

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

pequeña estrella. esto me ayudó a ordenar un sub Diccionario sub. ¡Muchas gracias! – Rambatino

+0

puede ufplir hasta vote esto entonces –

+0

¡No responde la pregunta! – Rambatino

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

Recuerde asignar a la matriz

Cuestiones relacionadas