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

时间:2012-03-27 13:48:33

标签: objective-c nsarray nsset

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

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

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

1 个答案:

答案 0 :(得分:117)

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

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

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

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

有关更多可能性,请参阅Collection Operators中的Key-Value Coding Programming Guide文档。