Method得到类的类方法
- 导入#import <objc/runtime.h>
+ (void)load {
// 获取替换后的类方法
Method otherMethod = class_getClassMethod([UIImage class], @selector(imageNameNextWith:));
// 获取替换前的类方法
Method method = class_getClassMethod([UIImage class], @selector(imageNamed:));
// 然后交换类方法
method_exchangeImplementations(otherMethod, method);
}
load方法只会走一次,利用runtime的method进行方法的替换 [uiimage class]可以写成self 当然这里分类可以直接写成
// 把系统的方法替换成我们自己写的方法
+ (UIImage *)imageNameNextWith:(NSString *)nameString {
UIImage *image = nil;
image = [UIImage imageNameNextWith:[nameString stringByAppendingString:@"tupian.jpg"]];
return image;
}
// 这里的imagenamed其实已经替换成了我们自己写的方法
UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
image.image = [UIImage imageNamed:@"1.jpg"];
[self.view addSubview:image];
------收集
网友评论