1.给一个类添加方法
类B 类A 两个类
B.m
-(void)viewDidLoad{
[super viewDidLoad];
BooL isSuccess = class_addMethod([A class],@selector(cusMyAddMethod),(IMP)cusImp,"v@:");
if(isSuccess){
[A performSelector:@selector(cusMyAddMethod) withObject:nil];
}
}
//不要忘了实现(IMP)cusImp
-(void)cusImp(id self,SEL _cmd){
NSLog(@"添加成功啦!");
}
2.替换给定方法的实现
在1 当中已经给A类添加了一个方法,现在把A新添加的方法换一个实现
class_replaceMethod([A class],@selector(cusMyAddMethod),(IMP)cusReplaceImp,"v@:");
然后调用同样的方法
[A performSelector:@selector(cusMyAddMethod) withObject:nil];
-(void)cusImp(id self,SEL _cmd){
NSLog(@"替换成功啦!");
}
未完待续。。。。