67

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

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

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

4

1 回答 1

119

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

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

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

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

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

于 2012-03-27T13:50:25.743 回答