OC中的 KVC
来源:互联网 发布:mac找不到照片宗卷 编辑:程序博客网 时间:2024/05/18 00:34
(1)KVC
NSKeyValueCoding 键-值-编码
1 、概述
KVC是KeyValue Coding的简称,它是一种可以直接通过字符串的名字(key)来访问类属性的机制。而不是通过调用Setter、Getter方法访问。
当使用KVO、Core Data、CocoaBindings、AppleScript(Mac支持)时,KVC是关键技术。
2、如何使用KVC
关键方法定义在:NSKeyValueCodingprotocol
KVC支持类对象和内建基本数据类型。
获取值
valueForKey:,传入NSString属性的名字。
valueForKeyPath:,传入NSString属性的路径,xx.xx形式。
valueForUndefinedKey它的默认实现是抛出异常,可以重写这个函数做错误处理。
修改值
setValue:forKey: // forKey:NSString属性的名字。
setValue:forKeyPath: //forKey:NSString属性的路径,xx.xx形式。
setValue:forUndefinedKey:
setNilValueForKey: 当对非类对象属性设置nil时,调用,默认抛出异常。
一对多关系成员的情况
mutableArrayValueForKey:有序一对多关系成员 NSArray
mutableSetValueForKey:无序一对多关系成员 NSSet
例:
// 第一种利用KVC方式赋值 ValueForKey
Classes *cls = [[Classes alloc] init];
[cls setValue:@"46 iOS" forKey:@"name"];
NSLog(@"cls = %@",[cls valueForKey:@"name"]);
Student *stu = [[Student alloc] initWithName:@"licy" andage:23];
[stu setValue:cls forKey:@"cls"];
NSLog(@"stu.cls = %@",[cls valueForKey:@"name"]);
// 第二种KVC赋值方式 valueForKeyPath
Student *stu = [[Studentalloc]initWithName:@"licy"andage:4];
Classes *temp = [[Classesalloc] init];
[stu setValue:temp forKey:@"cls"];
[stu setValue:@"iOS"forKeyPath:@"cls.name"];
NSLog(@"stu cls name =%@",[stu valueForKeyPath:@"cls.name"]);
- OC中的 KVC
- OC中的KVC
- OC中的KVC和KVO
- OC中的KVC和KVO
- OC中的KVC与KVO
- OC学习:KVC中的运算符
- OC(Objective-C)中的KVC
- OC中的KVC和KVO(一)
- OC中的KVC和KVO(二)
- OC-KVC
- OC --- KVC
- OC KVC
- OC学习之KVC
- OC-KVC-键值编码
- OC-KVC/KVO
- oc中kvc kvo
- OC之KVC
- OC Block KVC
- 黑马程序员_银行业务调度系统
- 爱情都被金钱的年代
- 黑马程序员 Java基础<三>---> 抽象类、与接口
- OC中的内存管理—重写dealloc方法
- Objective-c @Class 说明
- OC中的 KVC
- OC KVO
- OC 内存管理
- NSString的方法
- @property 参数详解
- AppDelegate class文件简介
- UIwindow UIView UIViewControl
- UIResponder类
- IOS 计时器 NSTimer