iOS开发-kvc
来源:互联网 发布:mac怎么创建加密文件夹 编辑:程序博客网 时间:2024/06/06 00:54
一。什么是KVC
kvc--key-value coding,健值编码
可以通过key直接访问对象属性的value的方法
kvc主要是为了让代码变的更简介明了
用的比较多的是在后台数据解析,还有访问一些没有setter,getter方法的属性
定义都在NSKeyValueCoding.h中
主要两个方法:
//key为当前类的属性名- (id)valueForKey:(NSString *)key; //当类没有名为key的属性时会调用抛出异常,可以复写valueForUndefinedKey:方法,作处理- (void)setValue:(id)value forKey:(NSString *)key;//当类没有名为key的属性时会调用抛出异常,可以复写- (void)setValue:(id)value forUndefinedKey:(NSString *)key:方法,作处理//keyPath 为访问属性的路径,比如:@"person.name",person是当前类的属性,name是person类的一个属性名- (id)valueForKeyPath:(NSString *)keyPath;- (void)setValue:(NSValue *)value forKeyPath:(NSString *)keyPath;
异常处理
- (id)valueForUndefinedKey:(NSString *)key;- (void)setValue:(id)value forUndefinedKey:(NSString *)key
代码举例:
@interface ViewController () @property (nonatomic, weak) NSString *viewString;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"----[%@]",[self valueForKey:@"viewString"]); NSLog(@"----[%@]",[self valueForKey:@"viewArray"]); [self setValue:@"testForViewString" forKey:@"viewString"]; [self setValue:@"1" forKey:@"viewArray"]; }- (void)setValue:(id)value forUndefinedKey:(NSString *)key { NSLog(@"【warning】!!!!!!---Undefined--key[%@]--!!!!!!",key);}- (id)valueForUndefinedKey:(NSString *)key { if ([key isEqualToString:@"viewArray"]) { return @"aaaa"; } else { return [super valueForUndefinedKey:key]; }}
0 0
- iOS开发-kvc
- IOS开发-KVC
- IOS开发-10.KVC
- IOS应用开发-KVC/KVO
- iOS开发--KVC & KVO
- iOS开发 - KVO/KVC
- iOS开发 - KVC
- IOS 高级开发 KVC(一),ios开发kvc
- iOS 高级开发 KVC(一),ios开发kvc
- iOS开发:KVO和KVC
- iOS开发之KVC、KVO
- iOS开发 KVC和KVO
- IOS开发 - KVC 和 KVO
- 【iOS开发系列】KVC&KVO
- iOS开发:KVO和KVC
- iOS开发之KVC/KVO
- iOS开发 ☞ KVC详解
- IOS开发之----KVC的使用
- qt学习笔记(四) qt编程时遇到的问题的总结
- ISAKMP hacking – How much should we trust our tools?
- OTG中的ID脚风波释疑
- Could not access the hardware (it is possibly in use by other application)
- asp.net 应用数据缓存 -- Cache对象使用
- iOS开发-kvc
- crontab 中ssh远程启动java程序报错 Could not reserve enough space for object heap
- qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
- 《java并发编程实战》基础构建模块(二)
- string对象的操作 string::size_type类型
- CListCtrl使用技巧(总结)
- rowid 解析
- provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
- MYSQL安全配置介绍