参考网址:https://github.com/lizelu/ObjCRuntimeDemo
//这个方法可以检测图片名称是否为空,如果是空会打印
#import "UIImage+image.h"
#import <objc/message.h>
@implementation UIImage (image)
+(void)load
{
Method imageNamemethod= class_getClassMethod([UIImage class], @selector(imageNamed:));//这个是系统自身的方法
Method imagezjqMethod= class_getClassMethod([UIImage class], @selector(zjq_imageName:));//自己定义的方法
method_exchangeImplementations(imageNamemethod, imagezjqMethod);//两个方法进行交换,当调用第一个方法时会执行第二个方法的内容
}
+(__kindof UIImage*)zjq_imageName:(NSString *)imageName
{
// 加载图片,方法已交换,相当于调用了系统的imageNamed方法,不会死循环
UIImage *image=[UIImage zjq_imageName:imageName];
if (image==nil) {
NSLog(@"图片为空");
}
return image;
}