Runtime运行时机制

Runtime又叫运行时,是一套底层的C语言API。

特性:OC在编译的时候并不知道要调用那个方法函数,只有在运行的时候才知道调用方法函数名称,来找到对应的方法函数进行调用。[C语言在编译的时候就知道要调用那个方法函数]

Runtime的作用

一.发送消息

每当一个类创建了一个方法的时候系统就会为这个方法进行一个编号然后放在方法列表中。当方法进行调用的时候就去方法列表中进行查找。

object在三种层面上与Runtime系统进行交互

1.通过Object-C源代码

2.通过Foundation框架的NSObject类定义的方法

3.通过对Runtime库函数的直接调用

 

Object-C源代码

多数情况我们只需要编写OC代码即可,Runtime系统自动在幕后搞定一切,编译器会将OC代码转换成运行时代码,在运行时确定数据结构和函数。

通过Foundation框架的NSObject类定义的方法

Cocoa程序中绝大部分都是NSObject类的子类,所以都继承了NSObject的行为。(NSProxy 类时个例外,它是个抽象超类)

一些情况下,NSObject类仅仅定义了完成某件事情的模板,并没有提供所需要的代码。

还有一些NSObject的方法可以从Runtime系统中回去信息,允许对象进行自我检查

-class方法返回对象的类

iskindofclass和isMenberofClass方法检查对象是否存在指定的类的继承体系中

respondsToSelector检查对象能否响应指定的消息

conformsToProtocol检查对象是否实现了指定协议类的方法

methodForSelector返回指定方法实现的地址

一些Runtime的术语的数据结构

SEL

它是selector在OC中的表示(Swift中是Selector类)

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值