Um truque muito legal de fazer uma operação de coleta simples é usar a codificação de valor-chave.
Por exemplo, se tivermos uma classe Person:
@interface Person : NSObject
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSNumber *age;
+ (Person *)personWithFirstName:(NSString *)firstName
lastName:(NSString *)lastName
age:(NSNumber *)age;
@end
e uma matriz que contém vários objetos desse tipo:
Person *first = [Person personWithFirstName:@"Jack"
lastName:@"Doe"
age:@22];
Person *second = [Person personWithFirstName:@"Jane"
lastName:@"Doe"
age:@32];
Person *third = [Person personWithFirstName:@"John"
lastName:@"Doe"
age:@41];
NSArray *people = @[first, second, third];
podemos encontrar facilmente a pessoa mais velha / mais jovem ou a idade média das pessoas na matriz:
NSNumber *maxAge = [people valueForKeyPath:@"@max.age"];
NSNumber *minAge = [people valueForKeyPath:@"@min.age"];
NSNumber *avgAge = [people valueForKeyPath:@"@avg.age"];