2010-02-13 24 views
6

Me preguntaba si alguien me puede mostrar cómo ordenar un NSDictionary; Quiero leerlo desde la última entrada, ya que la clave es Fecha + Hora y deseo poder adjuntarlo a un NSMutableString. Pude leerlo usando un enumerador pero no obtengo los resultados que quiero.Ordenando NSDictionary

Gracias

Respuesta

13

Para sus necesidades de la manera más fácil es crear una nueva matriz a partir de las teclas, género que, a continuación, utilizar la matriz para hacer referencia a los artículos en el diccionario originales.

(Nota myComparison es su propio método que comparará dos claves).

NSMutableArray* tempArray = [NSMutableArray arrayWithArray:[myDict allKeys]]; 
[tempArray sortedArrayUsingSelector:@selector(myComparison:)]; 

for (Foo* f in tempArray) 
{ 
    Value* val = [myDict objectForKey:f]; 
} 
0

He agregadas algunas de las otras sugerencias sobre StackOverflow en la clasificación de un NSDictionary en algo muy compacto que se ordenan alfabéticamente. Tengo un archivo Plist en 'ruta' que cargué en la memoria y deseo volcar.

NSDictionary *glossary = [NSDictionary dictionaryWithContentsOfFile: path]; 
NSArray   *array1 = [[glossary allKeys] sortedArrayUsingDescriptors:@[ [NSSortDescriptor sortDescriptorWithKey:@"" ascending:YES selector:@selector(localizedStandardCompare:)] ]]; 
for (int i=0; i<array1.count; i++) 
{ 
    NSString* key = [array1 objectAtIndex:i]; 
    NSString* value = [glossary objectForKey:key]; 
    NSLog(@"Key=%@, Value=%@", key, value); 
}