2012-03-27 19 views
58

Czy istnieje jakiś wygodny sposób pobrania tablicy/zestawu obiektów i utworzenia nowej tablicy/zestawu zawierającego niektóre właściwości każdego elementu w pierwszej tablicy?Tworzenie tablicy z właściwości obiektów w innej tablicy

Na przykład tablica zawiera obiekty samochodowe. Potrzebuję tablicy LicensePlates, gdzie każdy samochód ma NSObject car.licensePlate.

Obecnie po prostu przechodzę przez pierwszą tablicę dodającą obiekty do mojej tablicy wyników mutable, ale zastanawiałem się, czy istnieje metoda instancji, która istnieje dla tego (sprawdzone dokumenty dla NSArray).

Odpowiedz

113

To zwróci tablicę zawierającą wartość licensePlate z każdej pozycji w myCars tablicy:

NSArray *licensePlates = [myCars valueForKeyPath:@"licensePlate"] 

Jeśli chcesz tylko unikalne przedmioty (na przykład), można zrobić coś takiego:

NSArray *licensePlates = [myCars valueForKeyPath:@"@distinctUnionOfObjects.licensePlate"]; 

Więcej możliwości można znaleźć w dokumentacji Collection Operators w dokumencie Key-Value Coding Programming Guide.

+0

Myślę, że operator @unionOfObjects powinien być użyty w pierwszej instancji. – singingAtom

+1

Świetna odpowiedź! Wygląda na to, że link do dokumentów już nie działa. Oto odpowiedni link: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/KeyValueCoding/CollectionOperators.html – prad

Powiązane problemy