runtime方法的交换

import "UIImage+image.h"

import

@implementation UIImage (image)

//+(UIImage*)imageNamed:(NSString *)name{
//// 在分类里面不能调用super
// return nil;
//}

// 运行时

// 1.先写一个其他的方法来实现这个
+(__kindof UIImage)CJimageNamed:(NSString)imageName{

// 1. 加载图片 (在运行时的是后这里调用相当于是调用imagewithname)
UIImage *image =[UIImage CJimageNamed:imageName];
// 2.判断图片是否为空

if (image == nil) {
    NSLog(@"加载的图片为空");
}
return image;

}
//加载分类的时候就会调用
+(void)load{
NSLog(@"%s",func);
// 交换方法
// 获取实例方法
// class_getInstanceMethod(<#__unsafe_unretained Class cls#>, <#SEL name#>)
获取对象的方法。
Method method1= class_getClassMethod([UIImage class], @selector(imageNamed:));

Method method2= class_getClassMethod([UIImage class], @selector(CJimageNamed:));

method_exchangeImplementations(method1, method2);

}

你可能感兴趣的:(runtime方法的交换)