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

本文共 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

你可能感兴趣的文章
linux_perf
查看>>
我的友情链接
查看>>
rpm
查看>>
cisco 交换机加入 cacit需要开启的参数
查看>>
UI线程处理Handle
查看>>
python汇总
查看>>
zwacs短信报警智能工业云监控系统
查看>>
基于docker部署的微服务架构(三): 服务网关
查看>>
采用 Gateway 代替 Zuul,并代理注册在 Nacos 中的微服务
查看>>
Linux系统IP参数信息管理
查看>>
基于SSM的POI导入导出Excel实战第一篇-SSM框架的整合
查看>>
9成APP老司机认为这些渠道有效,你怎么看?
查看>>
vector中resize()和reserve()区别
查看>>
lnmp基本使用2
查看>>
城域网,局域网,广域网的区别
查看>>
Java中的优先级队列(一)
查看>>
寻找网站架构师!
查看>>
小米手机中的这个功能一定要好好利用,不然手机就白买了
查看>>
CoreData 基础知识
查看>>
使用python自动发送邮件
查看>>