目标:
每次UIImage加载图片, 打印是否加载成功, 并且在使用时不需要添加任何代码.
方法: 交换类方法
新建分类UIImage+xiaomage.h在load方法中交换两个类方法
// 类加载进内存的时候调用, 只会调用一次
+ (void)load {
// 获取imageNamed:
Method imageNameMethod = class_getClassMethod(self, @selector(imageNamed:));
// 获取xmg_imageNamed:
Method xmg_imageNameMethod = class_getClassMethod(self, @selector(xmg_imageNamed:));
method_exchangeImplementations(imageNameMethod, xmg_imageNameMethod);
}
新方法的实现
+ (UIImage *)xmg_imageNamed:(NSString *)name {
UIImage *image = [UIImage xmg_imageNamed:name];
if (image) {
NSLog(@"加载成功");
} else {
NSLog(@"加载失败");
}
return image;
}