OC学习之点语法
来源:互联网 发布:出名的网络翻唱歌手 编辑:程序博客网 时间:2024/04/29 20:48
点语法的本质还是进行赋值和取值 也就是说点语法 最终自己会去调用属性的set方法 和get方法
当点语法在等号左边出现的时候 会调用该属性的set方法 其余的时候出现都是在调用该属性的get方法。
Child *child =[[Child alloc]init];
// 首先会去寻找这个类中与key对应的set方法 如果没有找到set方法 会继续寻找有没有一个_key的实例变量 继续没有找到 会找_isKey的实例变量 继续没有找到 会去找isKey的实例变量 如果还是没有找到 程序崩溃;
// 类内部的属性或者实例变量叫什么 key就写什么
// [child setValue:@"哈哈" forKey:@"name"];
// 通过KVC传入的是什么类型 取值就是什么类型 接收的属性或者实例变量 会根据自身的类型继续转换
// [child setValue:@"KVO" forKey:@"name"];
// NSLog(@"%@",[child valueForKey:@"name"]);
//// 可以给一个空值;
// [child setValue:nil forKey:@"name"];
// [child setValue:@18 forKey:@"age"];
// [child sayHi];
// 对象类型可以给空值 非对象类型不可以给空值 否则会程序崩溃;
// 如果非对象类型传入空值 实现:-(void)setNilValueForKey:(NSString *)key
//这个方法则不会导致崩溃;(空实现即可);
// [child setValue:@2 forKey:@"age"];
// [child sayHi];
// 如果类内部没有与key值对应的实例变量或属性 进行赋值 会导致程序崩溃
// 如果实现-(void)setValue:(id)value forUndefinedKey:(NSString *)key 这个方法则不会导致程序崩溃;(空实现)
// [child setValue:@"男" forKey:@"gender"];
/ 通过A类给B类的属性赋值 首先会找A类中有没有SetB的方法 在去寻找B类中有没有setName的方法通过寻找key值路径 来进行最终的赋值;
// A*a =[[A alloc]init];
// [a setValue:@"哇哈哈" forKeyPath:@"b.name"];
// [a sayHi];
- OC学习之点语法
- oc学习之点语法笔记
- OC学习之@property和点语法
- OC 学习小结之点语法
- oc学习点语法
- OC之点语法详解
- Object-c学习之路(oc点语法)
- 黑马程序员-OC学习日记三之点语法小结
- oc新手学习细节之点语法连用理解
- OC语法--点语法
- OC学习那些事:点语法
- OC学习笔记二(点语法)
- iOSDay12之OC属性和点语法
- OC学习之核心语法
- OC学习之核心语法
- OC学习篇之---类的初始化方法和点语法的使用
- OC学习篇之---类的初始化方法和点语法的使用
- 黑马程序员IOS基础---OC学习之点语法和变量作用域
- 基于hadoop的简单网盘实现
- 车牌字符分割
- 缓存技术和一对多多对多总结
- 聚类分析
- 数据库设计Step by Step篇目整理及下载地址
- OC学习之点语法
- jQuery学习笔记之bind()
- 杭州--8
- install boost 1.6.0
- 我与C语言的那点故事
- 【数据结构】搜索二叉树的相关操作
- Sublime中图片的插入
- tomcat 的server.xml 详解
- 【bzoj2818】Gcd 线性筛法