Main.h
#import <Foundation/Foundation.h>
#import "Person.h"
#import "AppleDevice.h"
/*
定义一个Person对象,他叫乔布斯,他有许多苹果设备:
1个macbook,价格8000;
1个iPhone, 价格5000;
1个iPad, 价格3800。
使用kVC为Person设置名字,
使用kVC计算乔布斯所有设备的总价。
*/
int main(int argc, const char * argv[])
{
@autoreleasepool {
AppleDevice *device1 = [[AppleDevice alloc] init];
[device1 setValue:@"macbook" forKey:@"name"];
[device1 setValue:@8000 forKey:@"price"];
AppleDevice *device2 = [[AppleDevice alloc] init];
[device2 setValue:@"iphone" forKey:@"name"];
[device2 setValue:@5000 forKey:@"price"];
AppleDevice *device3 = [[AppleDevice alloc] init];
[device3 setValue:@"ipad" forKey:@"name"];
[device3 setValue:@3800 forKey:@"price"];
NSArray *deviceArrary = @[device1,device2,device3];
Person *person = [[Person alloc] init];
[person setValue:@"乔布斯" forKey:@"name"];
[person setValue:deviceArrary forKey:@"devices"];
NSNumber *num = [person valueForKeyPath:@"devices.@sum.price"];
NSLog(@"总价为:%@",num);
}
return 0;
}
Person.h
@interface Person : NSObject {
NSString *_name; //人的名字
NSArray *_devices; //拥有的设备
}
Person.m
- (void)dealloc
{
[_name release];
[_devices release];
[super dealloc];
}
AppleDevice.h
@interface AppleDevice : NSObject {
NSString *_name; //设备的名称
float _price;
}
AppleDevice.m
- (void)dealloc
{
[_name release];
[super dealloc];
}