Skip to content

Instantly share code, notes, and snippets.

@petermolnar-dev
Created December 8, 2016 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petermolnar-dev/1a437add1ae7d12821e2ef25aa036882 to your computer and use it in GitHub Desktop.
Save petermolnar-dev/1a437add1ae7d12821e2ef25aa036882 to your computer and use it in GitHub Desktop.
PMOKVOAggregationOnSetOfObjects
#import <Foundation/Foundation.h>
#import "PMOLottoNumbers.h"
@interface PMOTransaction : NSObject
@property NSString *name;
@property NSNumber *amount;
@property NSDate *transactionDate;
@end
@implementation PMOTransaction
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
PMOTransaction *transaction1 = [[PMOTransaction alloc] init];
transaction1.name = @"Mark";
transaction1.amount = @1000;
transaction1.transactionDate = today;
PMOTransaction *transaction2 = [[PMOTransaction alloc] init];
transaction2.name = @"Mark";
transaction2.amount = @500;
transaction2.transactionDate = [today dateByAddingTimeInterval: -86400.0];
PMOTransaction *transaction3 = [[PMOTransaction alloc] init];
transaction3.name = @"Abella";
transaction3.amount = @99999;
transaction3.transactionDate = [today dateByAddingTimeInterval: 86400.0];
NSArray *transactions = @[transaction1, transaction2, transaction3];
NSNumber *maxAmount = [transactions valueForKeyPath:@"@max.amount"];
NSNumber *minAmount = [transactions valueForKeyPath:@"@min.amount"];
NSNumber *sumOfAmount = [transactions valueForKeyPath:@"@sum.amount"];
NSNumber *avgOfAmount = [transactions valueForKeyPath:@"@avg.amount"];
NSLog(@"\nminAmount: %@\nmaxAmount: %@\nsumOfAmount: %@\navgOfAmount: %@\n", minAmount, maxAmount, sumOfAmount, avgOfAmount);
NSString *minName = [transactions valueForKeyPath:@"@min.name"];
NSString *maxName = [transactions valueForKeyPath:@"@max.name"];
NSString *countName = [transactions valueForKeyPath:@"@count.name"];
NSLog(@"\nminName: %@\nmaxName: %@\ncountName: %@", minName, maxName, countName);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment