有没有方便的方法来获取一个数组/一组对象并创建一个新的数组/集合,其中包含第一个数组中每个项目的某些属性?
例如,数组包含Car对象。我需要一系列licensePlates,其中每辆车都有一个NSObject car.licensePlate。
目前我只是遍历第一个数组,将对象添加到我的可变结果数组中,但是想知道是否存在一个实例化方法(检查NSArray的文档)。
答案 0 :(得分:117)
这将返回一个包含licensePlate
数组中每个项目myCars
的值的数组:
NSArray *licensePlates = [myCars valueForKeyPath:@"licensePlate"]
如果您只想要独特的项目(例如),您可以执行以下操作:
NSArray *licensePlates = [myCars valueForKeyPath:@"@distinctUnionOfObjects.licensePlate"];
有关更多可能性,请参阅Collection Operators中的Key-Value Coding Programming Guide文档。