0
点赞
收藏
分享

微信扫一扫

Runtime替换方法的风险

颜路在路上 2021-09-30 阅读 30

1

需要在+load方法中进行方法替换,且只执行一次(使用dispatch_once)。这样做有两点
1.防止在其他线程中调用替换方法
2.防止手动调用load方法

2

被替换的方法必须是当前类的方法,如果替换了父类的方法,父类在调用方法的时候会出错(https://www.jianshu.com/p/b5e28d402834)。

3

交换的方法如果依赖了 cmd,那么交换后,如果 cmd 发生了变化,就会出现各种奇怪问题,而且这些问题还很难排查。特别是交换了系统方法,你无法保证系统方法内部是否依赖了 cmd

4

方法交换命名冲突。如果出现冲突,可能会导致方法交换失败

举报

相关推荐

0 条评论