OC - 第八章(二) KVC
来源:互联网 发布:工作站品牌 知乎 编辑:程序博客网 时间:2024/04/30 08:43
// 第八章(二) KVC //KVC key-value-coding 键值编码 间接访问实例变量 //KVO key-value-observer 键值观察者 观察某个实例变量是否发生变化 //key:键,⽤用于标识实例变量 //vlaue:实例变量对应的值 Person *per = [[Person alloc]init]; per.name = @"志玲"; [per setValue:@"志玲" forKey:@"_name"]; NSLog(@"%@",per.name); NSLog(@"%@",[per valueForKey:@"_name"]); //不给_number添加setter getter方法; 甚至_number是private 都能给它赋值// 所以一般不会让别人知道有什么变量 [per setValue:@"12" forKey:@"_number"]; [per printfNumber]; [per setValue:@"LOL" forKey:@"_hobby"]; [per printfNumber]; NSLog(@"%@",[per valueForKey:@"_number"]); Telephone *phone = [[Telephone alloc]init]; per.phone = phone; per.phone.phoneNumber = @(13954638766); NSLog(@"%@",per.phone.phoneNumber); //通过KVC访问属性的属性, 通过路径访问 [per setValue:@"iPhone" forKeyPath:@"_phone._brand"]; NSLog(@"%@", per.phone.brand); NSLog(@"%@", [per valueForKeyPath:@"_phone._brand"]); //利用字典给对象的属性赋值 NSDictionary *dic = @{@"brand":@"sumsung", @"phoneNumber":@"231" ,@"color":@"purple", @"heihei":@"是我"}; Telephone *pho = [[Telephone alloc]init]; [pho setValuesForKeysWithDictionary:dic]; NSLog(@"%@ %@",pho.brand, pho.phoneNumber); //对于不存在对象的属性 会自动调用setValue:forUndefinedKey:// 系统默认实现是抛出⼀个异常; 因此需要在.m文件实现方法://利用kvc给本类对象赋值时,如果没有与key对应的实例变量的话, 系统会自动调用方法 -(void)setValue:(id)value forUndefinedKey:(NSString *)key{ NSLog(@"不包括%@",key);//容错手段 NSLog(@"%@",value); //_brand = value; if ([key isEqualToString:@"color"]) { _colour = value; } }
0 0
- OC - 第八章(二) KVC
- OC中的KVC和KVO(二)
- OC-KVC
- OC --- KVC
- OC KVC
- OC - 第八章(一) 属性
- OC中的 KVC
- OC学习之KVC
- OC-KVC-键值编码
- OC-KVC/KVO
- oc中kvc kvo
- OC之KVC
- OC Block KVC
- OC课堂笔记->KVC
- KVC 和 OC字典
- OC学习 -- KVC
- OC-KVC特性总结
- OC语法 --- KVC
- log4j日志输出到控制台
- 使用交叉混合编译从源代码编译龙芯上的llvm/clang-3.4
- Hibernate的catalog导致数据库连接与实际操作的库不一致
- nfs服务检测与自动恢复
- 样本类和模式匹配
- OC - 第八章(二) KVC
- python 与hadoop之pyhdfs的使用
- 10018---HttpClient 基本使用
- 一天一个数据结构之HashMap
- Android studio安装和一些快捷键
- windows下安装配置apache、mysql、php
- iOS 推送 通知 测试
- memcached—理论基础
- tableView的重用机制