runtime
来源:互联网 发布:1688传淘宝系统异常 编辑:程序博客网 时间:2024/05/03 17:59
runtime 用来干什么呢??用在那些地方呢?怎么用呢?
runtime是属于OC的底层, 可以进行一些非常底层的操作(用OC是无法现实的, 不好实现)
在程序运行过程中, 动态创建一个类(比如KVO的底层实现)
在程序运行过程中, 动态地为某个类添加属性\方法, 修改属性值\方法
遍历一个类的所有成员变量(属性)\所有方法
Objective-C是一门编译型、动态语言(这里强调下oc是静态类型语言),这在开发语言中是并多见的,一般的动态语言多为解释性语言。OC之所以能够做到即使编译型语言,又是动态语言。就是得益于RunTime机制。
1.相关的头文件和函数
1> 头文件
- 利用头文件,我们可以查看到runtime中的各个方法!
2> 相关应用
- NSCoding(归档和解档, 利用runtime遍历模型对象的所有属性)
- 字典 –> 模型 (利用runtime遍历模型对象的所有属性, 根据属性名从字典中取出对应的值, 设置到模型的属性上)
- KVO(利用runtime动态产生一个类)
- 用于封装框架(想怎么改就怎么改)
这就是我们runtime机制的只要运用方向
3> 相关函数
1、class_copyPropertyList 获取一份拷贝的成员列表数组
2、property_getName获取成员名称
3、class_getInstanceVariable 获取成员对象的Ivar
4、object_getIvar从Ivar对象中取值
5、object_setIvar赋值函数
6、objc_msgSend : 给对象发送消息
7、class_copyMethodList : 遍历某个类所有的方法
8、class_copyIvarList : 遍历某个类所有的成员变量
9、class_…..
这些是我们学习runtime必须知道的函数!
2.必备常识
1> Ivar : 成员变量
2> Method : 成员方法
0 0
- runtime
- Runtime
- Runtime
- Runtime
- runtime
- runtime
- Runtime
- runtime*****
- runtime
- runtime
- runtime
- runtime
- runtime
- Runtime
- runtime
- runtime
- runtime
- runtime
- PHP九九乘法表(三种循环)
- windbg 本地调试 设置
- C语言位运算
- Android市场还有多远的路能走
- [疯狂Java]JDBC:ResultSet的升级RowSet、离线的CachedRowSet、离线分页查询
- runtime
- Docker: How to enable/disable HTTP Proxy in Toolbox
- lightoj 1078【同余定理】
- C++质数/素数判断 以及 验证哥德巴赫猜想的代码实例
- Linux socket关闭连接shutdown与close
- 校园宽带破解---解救断网之际
- java学习 第一天
- 【yiyi挑战】2.1搜索
- LintCode:翻转链表