2012-03-27 87 views
58

是否有任何方便的方法來獲取數組/對象集合,並創建一個新的數組/集合,其中包含第一個數組中的每個項目的某些屬性?從另一個數組中的對象的屬性創建數組

例如,一個數組包含Car對象。我需要一系列licensePlates,其中每輛車都有一個NSObject car.licensePlate。

目前我只是迭代通過添加對象到我的可變結果數組的第一個數組,但想知道是否有一個存在的實例化方法(檢查NSArray的文檔)。

回答

113

這將從每個項目myCars數組中返回一個包含licensePlate值的數組:

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

如果只想獨特的項目(例如),你可以做這樣的事情:

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

有關更多可能性,請參閱Key-Value Coding Programming Guide中的Collection Operators文檔。

+0

我認爲應該在第一個實例中使用operator @unionOfObjects。 – singingAtom 2014-01-31 17:06:17

+1

很棒的回答!看起來像文檔的鏈接不再有效。這是正確的鏈接:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/KeyValueCoding/CollectionOperators.html – prad 2017-03-21 06:13:17

相關問題