58
是否有任何方便的方法来获取数组/对象集合,并创建一个新的数组/集合,其中包含第一个数组中的每个项目的某些属性?从另一个数组中的对象的属性创建数组
例如,一个数组包含Car对象。我需要一系列licensePlates,其中每辆车都有一个NSObject car.licensePlate。
目前我只是迭代通过添加对象到我的可变结果数组的第一个数组,但想知道是否有一个存在的实例化方法(检查NSArray的文档)。
是否有任何方便的方法来获取数组/对象集合,并创建一个新的数组/集合,其中包含第一个数组中的每个项目的某些属性?从另一个数组中的对象的属性创建数组
例如,一个数组包含Car对象。我需要一系列licensePlates,其中每辆车都有一个NSObject car.licensePlate。
目前我只是迭代通过添加对象到我的可变结果数组的第一个数组,但想知道是否有一个存在的实例化方法(检查NSArray的文档)。
这将从每个项目myCars
数组中返回一个包含licensePlate
值的数组:
NSArray *licensePlates = [myCars valueForKeyPath:@"licensePlate"]
如果只想独特的项目(例如),你可以做这样的事情:
NSArray *licensePlates = [myCars valueForKeyPath:@"@distinctUnionOfObjects.licensePlate"];
有关更多可能性,请参阅Key-Value Coding Programming Guide中的Collection Operators文档。
我认为应该在第一个实例中使用operator @unionOfObjects。 – singingAtom 2014-01-31 17:06:17
很棒的回答!看起来像文档的链接不再有效。这是正确的链接:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/KeyValueCoding/CollectionOperators.html – prad 2017-03-21 06:13:17