RunTime的详解URL

https://juejin.im/post/593f77085c497d006ba389f0



面试:消息机制方法调用流程

怎么去调用eat方法,对象方法:(保存到类对象的方法列表) ,类方法:(保存到元类(Meta Class)中方法列表)。

1.OC 在向一个对象发送消息时,runtime库会根据对象的isa指针找到该对象对应的类或其父类中查找方法。。

2.注册方法编号(这里用方法编号的好处,可以快速查找)。

3.根据方法编号去查找对应方法。

4.找到只是最终函数实现地址,根据地址去方法区调用对应函数。

补充:一个objc对象的isa的指针指向什么?有什么作用?

每一个对象内部都有一个isa指针,这个指针是指向它的真实类型,根据这个指针就能知道将来调用哪个类的方法。



runtime 常见作用

1,动态交换两个方法的实现

2,动态添加属性

3,实现字典转模型的自动转换

4,发送消息

5,动态添加方法

6,拦截并替换方法

7,实现 NSCoding 的自动归档和解档


你可能感兴趣的:(RunTime的详解URL)