微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iphone – 如果我覆盖一个类方法,有没有办法可以调用原始方法(被覆盖的方法)?

在Objective-C中,如果我使用类别覆盖类方法,有没有办法可以调用原始方法(被覆盖的方法)?

解决方法

我用三种方法向你展示(虚空)加载.在每种情况下,请将方法命名为MyCategory_method左右.

> class_getmethodImplementation()和class_replaceMethod().存储旧的IMP,并直接调用它.您需要获取方法的类型编码.请注意,您也可以使用普通的C函数
> class_getInstanceMethod(),method_getImplementation(),method_setImplementation().如上所述,但您不需要获取方法的类型编码.
>两个方法上的class_getInstanceMethod(),然后是method_exchangeImplementations().调用MyCategory_method以获取原始实现.这是最简单的方法.

有时,这是让它做你想做的唯一合理的方法

编辑:只有你知道你在做什么才这样做!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐