runtime实际上是一套C语言的库,我们平时所写的所有OC的代码最终都会转换成runtime库里的东西.比如说:OC的类会转换成runtime库中的结构体数据类型;OC中的方法会转换成runtime库中的C语言函数;调用方法转换成objc_msgSend函数.所以可以说runtime是OC 的底层实现,是OC 的幕后工作者.
runtime的作用:runtime库里有类,成员变量,方法等相关的API,所以我们可以通过runtime获取里边的所有成员变量,给类动态添加成员变量;给类动态添加成员变量,动态修改类的方法实现,给类动态的添加新的方法.
runtime的典型例子是KVO(key-value observing).KVO是基于runtime机制实现的.当制定的对象的属性被修改之后,对象就会接受到通知.简单的说就是每次制定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者
2024

被折叠的 条评论
为什么被折叠?



