runtime --- 方法实现交换

简介: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #000000 }span.s1 { }  方法欺骗  使用 runtime 进行两个方法的交换 + (void)load { //获取类方法...

 

 

方法欺骗  使用 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;
}

 

相关文章
|
4月前
|
SQL JSON Java
Java【问题记录 02】对象封装+固定排序+list All elements are null引起的异常处理+Missing artifact com.sun:tools:jar:1.8.0
Java【问题记录 02】对象封装+固定排序+list All elements are null引起的异常处理+Missing artifact com.sun:tools:jar:1.8.0
43 0
|
8月前
|
Java
java中两个数交换的4种方式
java中两个数交换的4种方式
161 0
|
10月前
|
机器学习/深度学习 Java
java中swap方法交换两个数的值的两种写法
java中swap方法交换两个数的值的两种写法
|
缓存 Go
Go --- for range会使通道中的缓存值被取出
Go --- for range会使通道中的缓存值被取出
Go --- for range会使通道中的缓存值被取出
栈合法IO序列
栈合法IO序列
67 0
|
Java
Java三种方式交换两个变量的值
Java三种方式交换两个变量的值
95 0
|
存储
【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
411 0
【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)
【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)
417 0