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

消息发送的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, ... );

最新文章

  1. Android RecyclerView 实现支付宝首页效果
  2. [转]ASP.NET Core--根据方案来限制身份
  3. 【JS】falsy与truthy
  4. 记录一个mysql连接慢的问题
  5. if条件里比较浮点数
  6. Flips测试类(page43)
  7. SimpleDateFormat使用特定的解释
  8. Linux学习笔记——如何使用共享库交叉编译
  9. Dogs[HDU2822]
  10. [易飞]设置导入导出规则-小BUG
  11. 为 VUE 项目添加 PWA 解决发布后刷新报错问题
  12. 作为程序员必须掌握的Java虚拟机中的22个重难点
  13. A1065. A+B and C (64bit)
  14. sublime3 快速生成html头文件
  15. 微信小程序中this使用
  16. ScrollView 定位
  17. sql排序方法
  18. Python协程 Gevent Eventlet Greenlet
  19. 【BZOJ】2049: [Sdoi2008]Cave 洞穴勘测 LCT
  20. (转)android从应用到驱动之—camera(1)---程序调用流程

热门文章

  1. servlet中怎么注入service
  2. CSS弹性盒模型flex概念
  3. Android tablayout增加选择tab 的事件.
  4. 《Unix环境高级编程》读书笔记 第7章-进程环境
  5. TypeError: Cannot use 'in' operator to search for 'length' in....
  6. 5、AFM(Attention+FM)-----Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Network
  7. NOIp2018模拟赛四十一
  8. mariadb-增删改查怎么用
  9. Linux修改Linux默认打开方式
  10. Python 安装 httplib2