runTime之--交换方法
2016-11-01 本文已影响10人
Hyman0819
Xcode配置:
-
让底层方法有提示
严格检查消息发送 -
导入#import <objc/message.h>
包含 #include <objc/objc.h> #include <objc/runtime.h>
原理
- 将方法名注册,得到方法编号
- 用方法编号去方法列表List中查找,找到方法的实现地址
-
用方法地址和方法区中的方法实现是一一对应的
交换方法
实现步骤
- 在load方法中进行方法交换
-
自定义方法
实现
-
付Swift中没有load方法,所以在initialize方法进行交换
Swift
程序五大区
- 堆
- 栈
- 静态区
- 常量区
- 方法区
微云网盘:
交换方法demo