Created
December 8, 2016 20:39
-
-
Save petermolnar-dev/1a437add1ae7d12821e2ef25aa036882 to your computer and use it in GitHub Desktop.
PMOKVOAggregationOnSetOfObjects
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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