//基本的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"]);OC-简单介绍KVC和简单的使用!
最新推荐文章于 2023-05-14 12:18:38 发布
本文介绍了KVC(Key Value Coding)在Objective-C中的基本使用方法,包括如何通过KVC设置和获取对象属性值,以及如何利用KVC进行简单的集合操作如计数、求和等。
273

被折叠的 条评论
为什么被折叠?



