例如:拦截所有UIButton的点击事件
1、
![](https://img.haomeiwen.com/i10362904/1290c90f577fdb16.png)
2、
![](https://img.haomeiwen.com/i10362904/5734fab652df8fae.png)
3、原理是:
交换方法如果调用的是class_rw_t的话,实质上是交换class_rw_t里面methods的method_t的imp。
交换方法如果调用的是cache_t的话,实质上是清空缓存,重新再来一遍。
![](https://img.haomeiwen.com/i10362904/ef34acee38674767.png)
![](https://img.haomeiwen.com/i10362904/b29308ef2064813e.png)
![](https://img.haomeiwen.com/i10362904/f0c2519ad37afe54.png)
![](https://img.haomeiwen.com/i10362904/db0c241c3dff8a11.png)
![](https://img.haomeiwen.com/i10362904/1ca1f084eba6ba1b.png)
例如:拦截所有UIButton的点击事件
1、
2、
3、原理是:
交换方法如果调用的是class_rw_t的话,实质上是交换class_rw_t里面methods的method_t的imp。
交换方法如果调用的是cache_t的话,实质上是清空缓存,重新再来一遍。
本文标题:交换方法的底层实现原理
本文链接:https://www.haomeiwen.com/subject/tamthhtx.html
网友评论