Создание массива из свойств объектов в другом массиве

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

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

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

Ответ 1

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

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

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

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

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