runtime --- 方法实现交换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了runtime --- 方法实现交换相关的知识,希望对你有一定的参考价值。

 

 

方法欺骗  使用 runtime 进行两个方法的交换

 

+ (void)load {
    //获取类方法
    Method olld = class_getClassMethod([self class], @selector(URLWithString:));
    
    Method new = class_getClassMethod([self class], @selector(AZ_URLWithString:));
    //交换两个方法的实现
    method_exchangeImplementations(olld, new);
    
}

+ (instancetype)AZ_URLWithString:(NSString *)str{
    
    NSURL *url  =[NSURL AZ_URLWithString:str];
    if (!url) {
        NSLog(@"交换方法");
    }
    return url;
}

 

以上是关于runtime --- 方法实现交换的主要内容,如果未能解决你的问题,请参考以下文章

ios开发runtime学习二:runtime交换方法

runtime实现数组中不能添加nil

iOS Runtime之方法替换

runtime真的超级好用

iOS 方法交换的原理

运行时Runtime演示方法交换