運(yùn)行時如何添加方法:
//這一該方式為C語言方式寫法
//id self,SEL _cmd 為前兩個固定的簿废,后邊為參數(shù)
void mytest(id self,SEL _cmd,int a,int b,int c){
NSLog(@"I'm here-:test,");
}
#pragma mark --動態(tài)方法解析
//向類對象發(fā)送方
+(BOOL)resolveInstanceMethod:(SEL)sel{
if (sel == @selector(mytest:b:c:)) {
class_addMethod([self class], sel, (IMP)mytest, "v@:iii");
return YES;
}
return [super resolveInstanceMethod:sel];
}
示例說明:
class_addMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp,
const char * _Nullable types)
中參數(shù):
參數(shù)1:cls為執(zhí)行SEL的類,上述為[self class]
參數(shù)2:執(zhí)行的SEL
參數(shù)3:替換的方法(IMP)
參數(shù)4:方法執(zhí)行的返回與傳入字符串格式