美文网首页iOS面试
objc中向一个对象发送消息[obj foo]和objc_msg

objc中向一个对象发送消息[obj foo]和objc_msg

作者: natewang | 来源:发表于2016-05-02 20:13 被阅读1028次

objc_msgSend()是[obj foo]的具体实现。
在runtime中,objc_msgSend()是一个c函数,[obj foo]会被翻译成这样的形式objc_msgSend(obj, foo)。

  • 去obj的对应的类中找方法
  • 先找缓存,找不到再去找方法列表,
  • 再找父类,如此向上传递。
  • 最后再找不到就要转发。

相关文章

网友评论

  • 53c469a10b6e:最近在学习这方面的知识,看到的是在翻译成符号的时候把[obj foo]变为了@obj_msgSend。

本文标题:objc中向一个对象发送消息[obj foo]和objc_msg

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