从另一个数组中的对象属性创建数组

Ben*_*ard 64 objective-c nsarray nsset

有没有方便的方法来获取一个数组/对象集并创建一个包含第一个数组中每个项的某些属性的新数组/集?

例如,数组包含Car对象.我需要一系列licensePlates,其中每辆车都有一个NSObject car.licensePlate.

目前我只是遍历第一个数组,将对象添加到我的可变结果数组中,但是想知道是否存在为此存在的实例化方法(检查NSArray的文档).

Mik*_*ler 119

这将返回一个数组,其中包含数组中licensePlate每个项的值myCars:

NSArray *licensePlates = [myCars valueForKeyPath:@"licensePlate"]
Run Code Online (Sandbox Code Playgroud)

如果您只想要唯一的项目(例如),您可以执行以下操作:

NSArray *licensePlates = [myCars valueForKeyPath:@"@distinctUnionOfObjects.licensePlate"];
Run Code Online (Sandbox Code Playgroud)

有关更多可能性,请参阅" 键值编码编程指南"中的" 集合运算符"文档.