runtime
2016-01-12 19:32
274 查看
1.ios新特性
常见关键字:
1.当新出了关键字时,学会如何使用:修饰属性,方法参数,方法返回值
2.关键字的好处,注意点:提高程序员规范,知道如何赋值了,只能用于声明对象,不能声明基本类型
泛型
1.泛型的使用场景,格式:声明对象属性不确定,创建对象属性才确定时使用,放在类型的后面,表示限制类型.
2.好处:可以用点语法,提高程序员开发规范
3.协变,逆变:用于转换类型
__kindof
1.什么意思,有什么用途:相当于的意思表示某个类或他的子类,让外界调用可以看到创建的是什么对象而不报警告
2. Runtime(简称运行机制)(主要的是消息机制)
消息机制
1.runtime运行条件:必须要导入一个头文件#import \,进入工程 -> Build Settting -> msg -> No(不严格检测发送消息的调用)
2.本质,使用场景,使用方法:让对象发送消息,可以调用没有暴露出来的方法,objc_msgSend([上一个消息], @selector(发送消息))也可以传多个参数
*3.调用类方法的底层实现原理:isa指针—>拿到方法编号到方法列表—>找到方法名(函数入口)
交换方法
1.使用场合:比如一个项目多年,现在要给一个系统属性在不改变名字的情况下添加一个方法(添加一个图片提醒功能)
2.如何交换:添加一个自定义的图片方法添加所要加的属性在添加图片分类:同过load加载,拿到系统图片类方法a1在拿到自定义的图片方法a2在交换一下
动态添加方法
1.什么是动态添加:用到的时候才添加方法,不一开始就加载
*2.有没有使用过performSelector,什么时候用过:动态添加方法调用
3.如何动态添加:判断有没有实现,没有就添加,传递参数的添加,调用了一个不存在的方法就会调用
4.resolveIns调用时刻:调用了一个不存在的方法就会调用
@动态添加属性
1.什么是动态添加属性:给系统类添加额外的属性比如name属性,产生关联
字典转模型kvc(练一下)
1.有什么用处,怎么使用:提取给类方便调用属性,方便给plist文件声明,解析完后的字典调用封装了属性的类方法
字典转模型(1.2)底层实现原理
1.原理:遍历模型中所有成员变量 去 字典中取对应的value,给模型成员变量赋值
常见关键字:
1.当新出了关键字时,学会如何使用:修饰属性,方法参数,方法返回值
2.关键字的好处,注意点:提高程序员规范,知道如何赋值了,只能用于声明对象,不能声明基本类型
泛型
1.泛型的使用场景,格式:声明对象属性不确定,创建对象属性才确定时使用,放在类型的后面,表示限制类型.
2.好处:可以用点语法,提高程序员开发规范
3.协变,逆变:用于转换类型
__kindof
1.什么意思,有什么用途:相当于的意思表示某个类或他的子类,让外界调用可以看到创建的是什么对象而不报警告
2. Runtime(简称运行机制)(主要的是消息机制)
消息机制
1.runtime运行条件:必须要导入一个头文件#import \,进入工程 -> Build Settting -> msg -> No(不严格检测发送消息的调用)
2.本质,使用场景,使用方法:让对象发送消息,可以调用没有暴露出来的方法,objc_msgSend([上一个消息], @selector(发送消息))也可以传多个参数
*3.调用类方法的底层实现原理:isa指针—>拿到方法编号到方法列表—>找到方法名(函数入口)
交换方法
1.使用场合:比如一个项目多年,现在要给一个系统属性在不改变名字的情况下添加一个方法(添加一个图片提醒功能)
2.如何交换:添加一个自定义的图片方法添加所要加的属性在添加图片分类:同过load加载,拿到系统图片类方法a1在拿到自定义的图片方法a2在交换一下
动态添加方法
1.什么是动态添加:用到的时候才添加方法,不一开始就加载
*2.有没有使用过performSelector,什么时候用过:动态添加方法调用
3.如何动态添加:判断有没有实现,没有就添加,传递参数的添加,调用了一个不存在的方法就会调用
4.resolveIns调用时刻:调用了一个不存在的方法就会调用
@动态添加属性
1.什么是动态添加属性:给系统类添加额外的属性比如name属性,产生关联
字典转模型kvc(练一下)
1.有什么用处,怎么使用:提取给类方便调用属性,方便给plist文件声明,解析完后的字典调用封装了属性的类方法
字典转模型(1.2)底层实现原理
1.原理:遍历模型中所有成员变量 去 字典中取对应的value,给模型成员变量赋值
相关文章推荐
- JAAS - Document
- OkHttpUtils的Eclipse版Lib
- UITableView 笔记
- 一个C++面试题目
- C Primer Plus(第五版)7
- Linux搭建 nfs 服务器
- iOS开发 各种知识点的链接
- poj1639 Picnic Planning 最小度数限制生成树
- 2016最新 wamp2.5+windows 10安装CoedSgniffer代码格式检查:
- 文章标题
- Android组件:Fragment切换后保存状态
- 【MFC两种视频图像採集方法】DirectShow与Opencv
- C++中Vector清空
- 转载:JMeter压力测试入门教程[图文]
- Python 字符串
- 获取系统当前时间的timestamp
- SparkMLlib之二Basic Stastics
- 疑难文件夹 一拖搞定
- Ubuntu下Apache、php、mysql默认安装路径
- MySQL高级十四——表的优化