您的当前位置:首页正文

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

来源:要发发知识网

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

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