一、Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一。
运行时:是一种面向对象的编程语言(面向对象编程)的运行环境。运行时表明了在某个时间段内,哪个程序正在运行的时刻。运行时是计算机程序运行生命周期内的一个阶段。runtime可以为我们提供了在程序在运行时动态创建和检查对象,修改类和对象的方法。
二、运行时的开发中的使用:
二、消息转发机制
1、方法正常调用流程
obj -> isa -> obj的Class对象 -> method_array_t methods -> 对该表进行遍历查找,找到就调用,没找到继续往下走
obj -> superclass -> obj的父类 -> isa -> method_array_t methods -> 对父类的方法列表进行遍历查找,找到就调用,没找到就重复本步骤
直到NSObject -> isa -> NSObject的Class对象 -> method_array_t,如果还是没有找到就会crash
2、缓存机制
3、
总结:runtime 我们在开发的时候用到很多比如 全埋点的点击事件。当我们经历好久了迭代后,如果公司突然要求添加埋点,这个时候runtime是最省时省力的方法其实是这个时候我们可以创建一个plist文件做匹配 这里就不多介绍了,这方面的文章很多大家可以尝试下
写runtime的很多,有很多写的很细,大家同样可以去参考下,让我们有更大的提升。
网友评论