动态添加方法
使用场景:一个类方法非常多,一次性加载到内存,比较耗费资源
为什么动态添加方法? OC都是懒加载,有些方法可能很久不会调用
电商,视频,社交,收费项目:会员机制,要会员才拥有这些功能
定义C函数
void eat(id self,SEL sel){
NSLog(@"eat--------");
}
重写 +(BOOL)resolveClassMethod:(SEL)sel
+(BOOL)resolveClassMethod:(SEL)sel{
if (sel==@selector(eat)) {
class_addMethod(self, @selector(eat), (IMP)eat, "v@:");
}
return [super resolveClassMethod:sel];
}
方法调用
Test *tes=[[Test alloc]initWith:@""];
SEL select = NSSelectorFromString(@"eat");
[Test resolveClassMethod:select];
[tes performSelector:@selector(eat)];