2012-09-02 9 views
9

Me gustaría saber si es posible obtener un valor de una clave deseada dentro de un NSDictionary que está en NSArray.Cómo obtener valores de NSDictionaries dentro de un NSArray

Ejemplo:

NSArray *array = @[ @{@"title" : @"title 1", @"description" : @"description 1"}, 
@{@"title" : @"title 2", @"description" : @"description 2"}, 
@{@"title" : @"title 3", @"description" : @"description 3"} ]; 

me gustaría llegar (sin crear un nuevo NSMutableArray) todos los títulos dentro de mi NSArray. Tal vez estoy haciendo algo mal y mi enfoque es malo por completo.

Sé que podría crear una nueva clase y tener 2 propiedades (título, desc), pero ¿hay alguna forma de crear una clase o hacer una nueva NSMutableArray y repetir mi selección?

+0

Ha intentado obtener una referencia al diccionario llamando a 'NSDictionary * dict = [array objectAtIndex: 0];' y luego llamar a dict valueForKey? No tengo las referencias a mano, pero debería funcionar. – ATaylor

+0

La nueva sintaxis llamativa aún no está disponible para los desarrolladores de iOS. Desde la página "Novedades": [** Nota: ** El desarrollo de iOS que utiliza la sintaxis literal y la subscripción de objetos aún no está implementado.] (Http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual /WhatsNewXcode/Articles/xcode_4_4.html#//apple_ref/doc/uid/TP40011649-SW1). – dasblinkenlight

+1

@dasblinkenlight Es, solo requiere Xcode 4.4. – omz

Respuesta

27

Fácil:

NSArray *titles = [array valueForKey:@"title"]; 

Esto funciona porque la implementación de valueForKey:NSArray 's devuelve una nueva matriz que contiene los resultados de valueForKey: para cada uno de los objetos de la matriz.

+0

¿Cómo usar esta función en 'Swift'? – user3589771

Cuestiones relacionadas