iOS-分类重写原方法,如何调用原方法

需要知识

class_ro ,class_rw

分类中重写了原类方法导致原类中的方法被覆盖了,category的底层实现是在加载的时候,把category中的方法添加到原类的方法列表中,当调用方法时会遍历方法列表找到对应的响应子就返回,不再向下遍历。因为category的优先级高于类的优先级,使得原类中的选择子遍历不到。

这时候如果想在分类方法中调用原方法改怎么做呢?

可以去遍历方法列表,去查询最后一个test方法的selector,然后获取方法的指针地址来执行方法
如这样:


image.png

找到方法列表的最后一个与目标方法同名的方法然后去执行即可

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容