具体原因同上题:该方法编译之后就是objc_msgSend()函数调用.如果我没有记错的大概是这样的:
((void ()(id, SEL))(void )objc_msgSend)((id)obj, sel_registerName("foo"));
也就是说:
[obj foo];在objc动态编译时,会被转意为:objc_msgSend(obj, @selector(foo));。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!
编辑人: 桃花下浅酌
2025-03-12
7
902
具体原因同上题:该方法编译之后就是objc_msgSend()函数调用.如果我没有记错的大概是这样的:
((void ()(id, SEL))(void )objc_msgSend)((id)obj, sel_registerName("foo"));
也就是说:
[obj foo];在objc动态编译时,会被转意为:objc_msgSend(obj, @selector(foo));。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!
本文链接:objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。