38 votes

Récupérer le tableau des valeurs des propriétés de chaque objet dans un autre tableau sans boucle for.

C'est peut-être une question de base, mais je n'arrive pas à trouver de réponse.

Supposons que j'ai un tableau NSA (carArray) contenant des objets d'un certain type (Car).

Est-il possible d'obtenir un NSArray (colorArray) avec toutes les valeurs d'une propriété (couleur) de ces objets sans itérer carArray avec une boucle for ? (cfr. LINQ dans .NET)

NSMutableArray *colorList = [[NSMutableArray alloc] initWithCapacity:0];

for (Car *car in carArray)
{
    [colorList addObject:car.color];
}

Merci d'avance.

16voto

Vignesh Points 6572

Oui. Vous pouvez le faire sans l'itérer.

NSArray *colorArray = [carArray valueForKeyPath:@"@distinctUnionOfObjects.color"];

-1voto

vadivelu Points 518

Vous pouvez utiliser le NSSet pour obtenir les couleurs :

NSSet *NScolors = [NSSet setWithArray:[carArray valueForKey:@"color"]];
NSArray *colors = [NScolors allObjects];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X