码迷,mamicode.com
首页 > 其他好文 > 详细

发送消息vs函数调用

时间:2018-02-02 14:32:21      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:lin   objective   绑定   UI   ati   developer   nta   ide   send   

消息发送:对象处理消息;

消息发送的selector作为消息的一部分,在对象的运行时底层参与了消息分发,最终完成动态函数调用。

 

objc_msgSend(void /* id self, SEL op, ... */ )

id objc_msgSend ( id self, SEL op, ... );

 

函数调用:符号与函数地址绑定并执行。

 

在苹果官方文档《Objective-C Runtime Programming Guide》中提出和Objective-C运行时交互有三种方式,其中最底层的一种方式就是直接使用runtime的函数。我们下面就来看下和发送消息直接相关的几个函数:

1
2
3
4
5
objc_msgSend
objc_msgSend_fpret
objc_msgSend_stret
objc_msgSendSuper
objc_msgSendSuper_stret

我们看到他们都是以objc_msgSend开头的,也就是Objective-C“消息发送”的意思,我们就来看最基础的,也就是第一个。

1
id objc_msgSend ( id self, SEL op, ... );

发送消息vs函数调用

标签:lin   objective   绑定   UI   ati   developer   nta   ide   send   

原文地址:https://www.cnblogs.com/feng9exe/p/8404487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!