2012-09-02 13 views
9

Vorrei sapere se è possibile ottenere valori da una chiave desiderata all'interno di uno NSDictionary che si trova in NSArray.Come ottenere valori da NSDictionaries all'interno di un NSArray

Esempio:

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

Mi piacerebbe ottenere (senza creare un nuovo NSMutableArray) tutti i titoli all'interno del mio NSArray. Forse sto facendo qualcosa di sbagliato e il mio approccio è del tutto negativo.

So che potrei creare una nuova classe e avere 2 proprietà (titolo, desc), ma c'è un modo senza creare una classe o fare un nuovo NSMutableArray e iterare approfonditamente il mio array?

+0

Hai provato ottenendo un riferimento al dizionario chiamando 'NSDictionary * dict = [gamma objectAtIndex: 0];' e poi chiamando dict valueForKey? Non ho le referenze a portata di mano, ma dovrebbe funzionare. – ATaylor

+0

La nuova sintassi appariscente non è ancora disponibile per gli sviluppatori iOS. Dalla "Cosa c'è di nuovo pagina": [** Nota:. ** sviluppo iOS utilizzando la sintassi letterale e oggetto di indicizzazione non è ancora implementato] (http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual /WhatsNewXcode/Articles/xcode_4_4.html#//apple_ref/doc/uid/TP40011649-SW1). – dasblinkenlight

+1

@dasblinkenlight Lo è, richiede solo Xcode 4.4. – omz

risposta

27

Facile:

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

Questo funziona perché implementazione NSArray s' di valueForKey: restituisce un nuovo array che contiene i risultati di valueForKey: per ciascuno degli oggetti della matrice.

+0

Come usare questa funzione in 'Swift'? – user3589771

Problemi correlati