交换方法

#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
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li1990101010/article/details/51540120
个人分类: runtime
上一篇用runtime归档、解档、copy
下一篇断点续传
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭