iOS开发黑科技之runtime
2024-09-03 14:35:35
iOS 开发之黑科技—runtime
runtime其实就是oc底层的一套C语音的API
调用方法的本质就是发消息,
1、动态交换两个方法的实现(特别是交换系统自动的方法)
2、动态添加对象的成员变量和成员方法
3、获得某个类的所有成员方法、所有成员变量
注意:
对于一般OC代码的method swizzling, 在load方法中执行即可. 而Swift没有load, 所以要在initialize中执行.
应用
1、block的实现原理
2、拦截系统自带的方法调用
|
|
3、实现类别也可以增加属性
|
|
4、实现nscodeing的自动归档和自动接档
|
|
5、实现字典和模型的自动转换
|
|
这两个都是
Ivar * ivars = class_copyIvarList(self.class, &outCount);
就不用一个一个属性写了。
再说一下归档解档
如果不是系统的类,要进行归档解档要遵守协议,和实现协议中的方法
|
|
最新文章
- Effective c++读书笔记
- raw,cow,qcow,qcow2镜像的比较
- Atitit.工作流系统的本质是dsl 图形化的dsl  4gl
- 强行替换exe图标的方法
- slowhttps安装及使用心得
- 每天一道LeetCode--389. Find the Difference
- Python没有执行__init__
- nginx 配置多个主机
- Python快速入门(4)
- java 比较几种常见循环方式的优劣
- Java课程设计—学生成绩管理系统(201521123002 林楚虹)
- 【Java基础】【20IO(字节流)】
- JMeter 线程组之ConcurrencyThreadGroup介绍
- 重新看待Jar包冲突问题及解决方案
- Axure 页面内多组内容切换的实现 + 利用一个内联框架实现百度地图访问
- js绝对地址图片转换成base64的方法
- Ubuntu 默认启动到命令行 12.04
- [置顶] 不刷机让越狱后的iphone恢复出厂设置
- Oracle数据库的语句级读一致性
- struts2-core-2.3.20.jar