web-dev-qa-db-fra.com

Création d'un tableau à partir des propriétés d'objets d'un autre tableau

Existe-t-il un moyen pratique de prendre un tableau/ensemble d'objets et de créer un nouveau tableau/ensemble contenant une propriété de chaque élément du premier tableau?

Par exemple, un tableau contient des objets Car. J'ai besoin d'un tableau de plaques d'immatriculation, où chaque voiture a un NSObject car.licensePlate.

Actuellement, je viens de parcourir le premier tableau en ajoutant des objets à mon tableau de résultats mutables, mais je me demandais s'il existe une méthode d'instanciation qui existe pour cela (vérifié les documents pour NSArray).

64
Ben Packard

Cela renverra un tableau contenant la valeur de licensePlate de chaque élément du tableau myCars:

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

Si vous ne voulez que des éléments uniques (par exemple), vous pouvez faire quelque chose comme ceci:

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

Pour plus de possibilités, consultez la documentation Opérateurs de collecte dans le Guide de programmation du codage par valeur-clé .

119
Mike Weller