美文网首页
第十一条 消息传递机制 objc_msgSend

第十一条 消息传递机制 objc_msgSend

作者: 孙伟胜 | 来源:发表于2020-03-23 10:52 被阅读0次

    静态绑定/动态绑定#

    静态绑定,就是在编译期就能决定运行时所调用的函数。
    动态绑定,就是在运行期才能确定调用函数。

    消息传递机制

    这样消息派发系统就在接收者所属类中查找器方法列表,如果找到和选择器名称相符的方法就跳转其实现代码,如果找不到,就再起父类找,等找到合适的方法在跳转到实现代码。这里跳转到实现代码这一操作利用了尾递归优化。

    如果该消息无法被该类或者其父类解读,就会开始进行消息转发。

    每次都查询会不会很慢?

    每个类都有一个消息缓存列表,objc_msgSend会将匹配的结果放在这个“快速映射表里”,若稍后还查询这个类,那么查询起来就会快很多。

    相关文章

      网友评论

          本文标题:第十一条 消息传递机制 objc_msgSend

          本文链接:https://www.haomeiwen.com/subject/fuwrhhtx.html