1. 程式人生 > >IOS 動態新增方法

IOS 動態新增方法

動態新增方法

使用場景:一個類方法非常多,一次性載入到記憶體,比較耗費資源

為什麼動態新增方法? 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, "[email protected]:");

    }

return [superresolveClassMethod:sel];

}


方法呼叫

Test *tes=[[Test alloc]initWith:@""];

SEL select = NSSelectorFromString(@"eat");

    [TestresolveClassMethod:select];

    [tes performSelector:@selector(eat)];