什么是Runtime?
RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数(C语言的函数调用请看这里)。编译完成之后直接顺序执行,无任何二义性。OC的函数调用成为消息发送。属于动态调用过程。在编译的时候并不能决定真正调用哪个函数(事实证明,在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要申明过就不会报错。而C语言在编译阶段就会报错)。只有在真正运行的时候才会根据函数的名称找到对应的函数来调用.
Runtime的用在什么地方,怎么用?
‣ 遍历一个类的所有成员变量(属性)\所有方法
‣ 获取一个类中所有的属性,属性类型,并修改属性值
‣ 获取一个类中所有property属性
‣ 利用运行时归档和解档
‣ 动态添加方法,如果一个类方法非常多,加载类到内存的时候也比较耗费资源,需要给每个方法生成映射表,可以使用动态给某个类,添加方法解决。
‣ 给分类添加属性.category可以扩展类的方法,但是不能扩张类的属性,通过runtime可以实现
附上demo链接: github.com/StarRain-L/RuntimeDemo
不足之处,欢迎指正!!!!
网友评论