博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object-C runtime programming guide学习笔记
阅读量:5794 次
发布时间:2019-06-18

本文共 456 字,大约阅读时间需要 1 分钟。

Messaging
 
向一个实例发消息,runtime使用的是objc_msgSend函数来发送的。
 
每一个class都有一个指针指向他的super class,有一个 dispatch table,指向每个方法的地址。
每一个实例(来自NSObject or NSProxy)都有一个指针isa,指向他的class. 
 
runtime通过向上回溯直到找到调用的方法,然后执行。
 
执行的方法中会传入两个隐藏参数
self:  message receiver
_cmd: 当前方法的selector

 

动态添加一个方法
resolveInstanceMethod可以动态添加实例方法,resolveClassMethod可以动态添加类方法
 
动态加载
NSBundle
 
消息转发
 
如果实现了forwardInvocation, 则当想对象发送一个不存在的消息时候,会调用此接口,可以在这里将消息转发到其他对象来处理。

转载于:https://www.cnblogs.com/gabrialrx/p/4801523.html

你可能感兴趣的文章
人人都会深度学习之Tensorflow基础快速入门
查看>>
ChPlayer播放器的使用
查看>>
js 经过修改改良的全浏览器支持的软键盘,随机排列
查看>>
Mysql读写分离
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
Web日志安全分析工具 v2.0发布
查看>>
统计数据库大小
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
L104
查看>>
CTOR有助于BCH石墨烯技术更上一层楼
查看>>
被遗忘的CSS
查看>>
Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
查看>>
做完小程序项目、老板给我加了6k薪资~
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>