美文网首页
Method Swizzling

Method Swizzling

作者: 小凡凡520 | 来源:发表于2018-07-29 15:33 被阅读8次
    原理

    在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法实现,达到给方法挂钩的目的。每个类都有一个方法列表,存放着selector的名字和方法实现的映射关系。IMP类似函数指针,指向具体的Method实现。

    说明

    1、用 method_exchangeImplementations 来交换2个方法中的IMP
    2、用 class_replaceMethod 来修改类
    3、用 method_setImplementation 来直接设置某个方法的IMP,归根结底,都是偷换了selector的IMP。

    相关文章

      网友评论

          本文标题:Method Swizzling

          本文链接:https://www.haomeiwen.com/subject/qroppftx.html