2012-09-02 16 views
9

Chciałbym wiedzieć, czy możliwe jest uzyskanie wartości z żądanego klucza wewnątrz NSDictionary, który jest w NSArray.Jak uzyskać wartości z NSDictionaries wewnątrz NSArray

Przykład:

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

Chciałbym uzyskać (bez tworzenia nowego NSMutableArray) wszystkie tytuły w moim NSArray. Może robię coś złego i moje podejście jest złe.

Wiem, że mogę utworzyć nową klasę i mieć 2 właściwości (tytuł, opis), ale czy istnieje sposób bez tworzenia klasy lub tworzenia nowego NSMutableArray i iterowania dokładnej mojej tablicy?

+0

Czy próbowałeś uzyskać odniesienie do słownika, nazywając "NSDictionary * dict = [array objectAtIndex: 0];" a następnie wywołanie dict valueForKey? Nie mam referencji pod ręką, ale powinno działać. – ATaylor

+0

Nowa, krzykliwa składnia nie jest jeszcze dostępna dla programistów iOS. Na stronie "Co nowego": [** Uwaga: ** tworzenie iOS przy użyciu literalnej składni i indeksowania obiektów nie jest jeszcze zaimplementowane.] (Http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual /WhatsNewXcode/Articles/xcode_4_4.html#//apple_ref/doc/uid/TP40011649-SW1). – dasblinkenlight

+1

@dasblinkenlight Po prostu wymaga Xcode 4.4. – omz

Odpowiedz

27

proste:

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

To działa, ponieważ realizacja NSArray „s valueForKey: zwraca nową tablicę zawierającą wyniki valueForKey: dla każdego z obiektów tablicowych.

+0

Jak korzystać z tej funkcji w 'Swift'? – user3589771