web-dev-qa-db-ja.com

別の配列のオブジェクトのプロパティから配列を作成する

オブジェクトの配列/セットを取得して、最初の配列の各項目のプロパティを含む新しい配列/セットを作成する便利な方法はありますか?

たとえば、配列にはCarオブジェクトが含まれます。各車にNSObject car.licensePlateがあるlicensePlateの配列が必要です。

現在、私は最初の配列を繰り返してオブジェクトを変更可能な結果配列に追加していますが、これにインスタンス化メソッドが存在するかどうか疑問に思っていました(NSArrayのドキュメントを確認してください)。

64
Ben Packard

これは、licensePlate配列の各項目からmyCarsの値を含む配列を返します。

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

(たとえば)一意のアイテムのみが必要な場合は、次のようにすることができます。

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

その他の可能性については、 Key-Value Coding Programming GuideCollection Operators のドキュメントを参照してください。

119
Mike Weller