This might be a basic question, but I can't seem to find an answer.
Suppose I have an NSArray (carArray) with objects of a certain type (Car).
Is it possible to get an NSArray (colorArray) with all values of a property (color) of these objects without iterating carArray with a for loop? (cfr. LINQ in .NET)
NSMutableArray *colorList = [[NSMutableArray alloc] initWithCapacity:0];
for (Car *car in carArray)
{
[colorList addObject:car.color];
}
Thanks in advance.
Yes. Assuming that your object is adopting the KVC/KVO protocol. You can get an array of the properties like:
NSArray *colorList = [carArray valueForKey:@"color"];
Actually, what valueForKey:
method does, is to return an array containing the results of invoking valueForKey:
using key on each of the array's objects. (From Apple's Documentation on NSArray)
Yes. You can do that without iterating it.
NSArray *colorArray = [carArray valueForKeyPath:@"@distinctUnionOfObjects.color"];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With