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;
}

 

相关文章
|
25天前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
6月前
|
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
73 0
|
机器学习/深度学习 Java
java中swap方法交换两个数的值的两种写法
java中swap方法交换两个数的值的两种写法
|
Java
java:How to use code block?(Detailed)
This article will share something about java's code block. Very detailed, I promise.
96 0
java:How to use code block?(Detailed)
|
缓存 Go
Go --- for range会使通道中的缓存值被取出
Go --- for range会使通道中的缓存值被取出
Go --- for range会使通道中的缓存值被取出
|
缓存 iOS开发
Runtime系列:Class的结构【03】
Runtime系列:Class的结构
126 0
Runtime系列:Class的结构【03】
【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)
【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)
449 0
|
存储
【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
434 0
|
监控 程序员
一起谈.NET技术,System.Diagnostics命名空间里的Debug类和Trace类的用途【转】
  在 .NET 类库中有一个 System.Diagnostics命名空间,该命名空间提供了一些与系统进程、事件日志、和性能计数器进行交互的类库。当中包括了两个对开发人员而言十分有用的类Debug类和Trace类。
970 0
|
监控 程序员
System.Diagnostics命名空间里的“.NET研究”Debug类和Trace类的用途【转】
  在 .NET 类库中有一个 System.Diagnostics命名空间,该命名空间提供了一些与系统进程、事件日志、和性能计数器进行交互的类库。当中包括了两个对开发人员而言十分有用的类Debug类和Trace类。
1155 0