交换方法

原创 2016年05月30日 18:25:24
#import "UIImage+AddImageFunc.h"
#import <objc/runtime.h>

@implementation UIImage (AddImageFunc)

+ (void)load {

    Method methodOfOrigin = class_getClassMethod(self, @selector(imageNamed:));
    Method methodOfCurrent= class_getClassMethod(self, @selector(custom_imageNamed:));
    //交换两个方法
    method_exchangeImplementations(methodOfOrigin, methodOfCurrent);

}


/*
 * 外界主动调用 imageNamed: 的时候,相当于调用了custom_imageNamed:这个方法
 *
 **/
+ (UIImage *)custom_imageNamed:(NSString *)name {

    if (name.length == 0) {

        name = @"1";
    }

    /*
     *  1.当 主动调用 [self custom_imageNamed:name]
        2.因为已经交换了 所以相当于调用[self imageNamed:name];
     **/
    UIImage * image = [self custom_imageNamed:name];
    return image;

    return nil;
}

@end
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c# 定义方法实现元素交换的排序

  • 2013年10月06日 10:16
  • 902B
  • 下载

变量交换方法

  • 2013年05月13日 11:17
  • 13KB
  • 下载

C语言交换两个变量数值的几种方法

因为经常见到这类题目,就自己总结了以下几种办法 1. 创建中间变量 这是最快也是最简单的办法,例如:#includeint main() { int a=10; int b...

Cisco L2 交换密码恢复的方法

  • 2011年08月03日 13:54
  • 46KB
  • 下载

离子交换树脂复苏方法的应

  • 2010年04月15日 08:53
  • 126KB
  • 下载

runtime 几个要点总结-方法交换

函数替换 runtime forwardingTargetForSelector 消息转发 selector class_copyPropertyList property_getName resol...
  • sun2728
  • sun2728
  • 2016年08月08日 10:45
  • 679

两个数字的交换,三种方法

  • 2015年01月13日 02:21
  • 4KB
  • 下载

交换式工业以太网中的多播方法

  • 2012年09月03日 17:26
  • 391KB
  • 下载

物理内存不够用,临时增大Linux交换分区的方法

当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那...
  • cd520yy
  • cd520yy
  • 2014年01月15日 10:10
  • 1680

两个书交换最小内存方法

  • 2012年06月28日 17:04
  • 362B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交换方法
举报原因:
原因补充:

(最多只允许输入30个字)