19.MethodSwizzing方法交换的坑
前言
一、 MethodSwizzingTool
@implementation MethodSwizzingTool
+ (void)swizzingClass:(Class)cls oldSEL:(SEL)oldSel toNewSel:(SEL)newSel {
if (!cls) { return; }
Method oldM = class_getInstanceMethod(cls, oldSel);
Method newM = class_getInstanceMethod(cls, newSel);
method_exchangeImplementations(oldM, newM);
}
@end1.1 验证是否有效
二、 子类的坑
2.1 用自类方法替换父类方法,会怎样?
2.2 调用原实现

分析
修改调用
三、 优化 MethodSwizzingTool
3.1 优化思路
3.2 编写优化代码
3.3 优化代码流程分析

四、 父类的 functionA 也没有实现呢?

4.1 分析

4.2 再优化

总结
Last updated