- 判断receiver是否为nil,如果是nil则不往下执行,返回nil,这也是为什么在OC中向一个nil发送消息不会引起崩溃;
- 从方法的缓存中查找,被调用过的方法会存在缓存里面,每个类都会有一个表来存储被调用过的方法,以便下次更快的调用;
- 从本类的方法表(dispatch table)中查找方法寻找selector,找到则写入缓存,返回方法。否则再从父类中查找方法,如此往复,直到达到基类。
如果找不到方法,则进入方法的动态解析,消息转发。
如果找不到方法,则进入方法的动态解析,消息转发。
本文标题:objc_msgSend(id theReceiver,SEL
本文链接:https://www.haomeiwen.com/subject/qtgkaqtx.html
网友评论