您的位置:首页 > 其它

OC-简单介绍KVC和简单的使用!

2015-03-10 22:18 447 查看
//基本的KVC(Key,Value,Coding)基本概念
Person *person = [[Person alloc] init];

//下面会先判断getter/setter方法是否存在 如果存在先会调用getter/setter方法
[person setValue:@"1" forKey:@"compatibility"];

//valueForKey获取对象的数值 如果存储的是基本数据类型 必须先转换成对象 然后对象转换基本数据类型
NSNumber *number =  [person valueForKey:@"compatibility"];

//设置对象
[person setValue:[Car new] forKey:@"car"];

//设置当前Person里面的cat对象的属性
[person setValue:[NSNumber numberWithInt:1] forKeyPath:@"car.status"];
//获取
NSNumber *num1 = [person valueForKeyPath:@"car.status"];

//创建第一本书
book *book1 = [[book alloc] init];
[book1 setValue:@"三国演义" forKey:@"name"];
[book1 setValue:[NSNumber numberWithInt:124] forKey:@"price"];

//创建第二本书
book *book2 = [[book alloc] init];
[book2 setValue:@"三国演义" forKey:@"name"];
[book2 setValue:[NSNumber numberWithInt:125] forKey:@"price"];

//创建包含书籍对象
NSArray *array = [[NSArray alloc] initWithObjects:book1,book2,nil];
//设置属性
[person setValue:array forKey:@"array"];

//KVC可以做一些简单的运算 存储的数量
NSLog(@"%@",[person valueForKeyPath:@"array.@count"]);
//总和
NSLog(@"%@",[person valueForKeyPath:@"array.@sum.price"]);
//平均
NSLog(@"%@",[person valueForKeyPath:@"array.@avg.price"]);
//最大
NSLog(@"%@",[person valueForKeyPath:@"array.@max.price"]);
//最小
NSLog(@"%@",[person valueForKeyPath:@"array.@min.price"]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: