Objective-C通过向对象发送消息来调用方法,其核心函数为objc_msgSend.
objc_msgSend的参数分三部分:对象为接收者,方法名为选择器,以及消息中的参数.
每个类中都有个方法列表,由选择器作为key,方法实现作为值.objc_msgSend通过查询方法列表来获取具体的实现代码.
方法列表里的选择器与其对应的方法可以在运行时修改.
每个类有个"快速映射表"的缓存,用来保存objc_msgSend的匹配结果.提高重复执行的速度.
当objc_msgSend找不到接收者中符合选择器的实现方法时,会沿着继承体系向上查找,如果仍然未找到,就会执行"消息转发".