Создание массива из свойств объектов в другом массиве - PullRequest
64 голосов
/ 27 марта 2012

Есть ли какой-нибудь удобный способ взять массив / набор объектов и создать новый массив / набор, содержащий некоторые свойства каждого элемента в первом массиве?

Например, массив содержит объекты Car.Мне нужен массив licensePlates, где у каждого автомобиля есть NSObject car.licensePlate.

В настоящее время я просто перебираю первый массив, добавляя объекты в мой изменяемый массив результатов, но мне было интересно, существует ли метод создания экземпляров, который существуетдля этого (проверил документы для NSArray).

1 Ответ

119 голосов
/ 27 марта 2012

Это вернет массив, содержащий значение licensePlate от каждого элемента в массиве myCars:

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

Если вам нужны только уникальные предметы (например), вы можете сделать что-то вроде этого:

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

Дополнительные возможности см. В документации Операторы сбора в Руководство по программированию кодирования значения ключа .

...