#import "UIImage+customer.h"
#import <objc/runtime.h>
@implementation UIImage (customer)
+ (void)load{
Class class2 = object_getClass(self);
[self hookClass:class2 originalSelector:@selector(swizzlingImageName:) swizzledSelector:@selector(imageNamed:)];
[self hookClass:[self class] originalSelector:@selector(swizzlingInitWithData:) swizzledSelector:@selector(initWithData:)];
}
+ (void)hookClass:(Class)classObject originalSelector:(SEL)originalSelector swizzledSelector:(SEL)swizzledSelector {
Class class = classObject;
Method originalMethod = class_getInstanceMethod(class, originalSelector);
Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector);
BOOL didAddMethod = class_addMethod(class, originalSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));
if (didAddMethod) {
originalMethod = class_getInstanceMethod(class, originalSelector);
}
method_exchangeImplementations(swizzledMethod, originalMethod);
}
+ (instancetype)swizzlingImageName:(NSString*)name{
name = [NSString stringWithFormat:@"test_1"];
return [self swizzlingImageName:name];
}
- (instancetype)swizzlingInitWithData:(NSData*)data{
NSLog(@"===========");
return [self swizzlingInitWithData:data];
}
@end