IOS 動態新增方法
阿新 • • 發佈:2019-02-06
動態新增方法
使用場景:一個類方法非常多,一次性載入到記憶體,比較耗費資源
為什麼動態新增方法? 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
}
return [superresolveClassMethod:sel];
}
方法呼叫
Test *tes=[[Test alloc]initWith:@""];
SEL select = NSSelectorFromString(@"eat");
[TestresolveClassMethod:select];
[tes performSelector:@selector(eat)];