runtime

OC的runtime是一个运行时库,他是一个主要使用C语言和汇编语言的库,为C添加了面向对象的能力,并创建了OC。
OC是面向运行时的语言,他会尽可能的把编译器和链接要执行的逻辑延迟到运行时,具有很大的灵活性,可以按照需求把消息重定向给合适的对象,设置交换方法的实现。OC中调用一个对象的方法可以看成向一个对象发送消息。这就需要runtime,runtime可以做对象自省查看他们正在做的和不能做的,并且合适的分发消息。
runtime就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言来说,函数在调用的时候会决定到底调用哪个函数,编译之后直接顺序执行,无任何二义性。OC的函数调用称为消息发送,属于动态调用的过程,在编译的时候并不能决定真正调用哪个函数(在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错,而C语言在编译阶段就会报错)只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。
runtime可以进行一些非常底层的操作,比如:
- **在程序的运行过程中,动态创建一个类(比如KVO的底层实现)**
- **在程序的运行过程中,动态的为某个类添加属性|方法、修改属性、方法**
- **遍历一个类的所有成员变量,属性(MJExtension的实现),所有方法。**
- **动态交换两个方法的实现(比如:英文字符的大小写转化)**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值