使用场景
1.iOS 运行时在动态添加方法时会用到:
class_addMethod(<#__unsafe_unretained Class cls#>, <#SEL name#>, <#IMP imp#>, <#const char *types#>)
参数1 class
参数2 方法体
参数3 IMP 函数指针
参数4 types 函数的定义
实例
class_addMethod([self class], sel, (IMP)changeBackgroud, "v@:@");
class_addMethod([self class], sel, class_getMethodImplementation([self class], @selector(abc)), "v@:");
"v@:@"的具体含义
v 代表返回值(void)参照图表设置想返回的类型
@ 代表object 这个是receiver 必传
:代表SEL 这个是_cmd 必传
@ 代表参数 这个代码参数 可选
void changeBackgroud(id self,SEL _cmd,id value){}