
屏幕快照 2016-09-22 下午2.22.53.png
使用場(chǎng)景
1.iOS 運(yùn)行時(shí)在動(dòng)態(tài)添加方法時(shí)會(huì)用到:
class_addMethod(<#__unsafe_unretained Class cls#>, <#SEL name#>, <#IMP imp#>, <#const char *types#>)
參數(shù)1 class
參數(shù)2 方法體
參數(shù)3 IMP 函數(shù)指針
參數(shù)4 types 函數(shù)的定義
實(shí)例
class_addMethod([self class], sel, (IMP)changeBackgroud, "v@:@");
class_addMethod([self class], sel, class_getMethodImplementation([self class], @selector(abc)), "v@:");
"v@:@"的具體含義
v 代表返回值(void)參照?qǐng)D表設(shè)置想返回的類型
@ 代表object 這個(gè)是receiver 必傳
:代表SEL 這個(gè)是_cmd 必傳
@ 代表參數(shù) 這個(gè)代碼參數(shù) 可選
void changeBackgroud(id self,SEL _cmd,id value){}