通過反射無需導入頭文件,動態獲取類名,調用方法

例如,在一個靜態庫中,調用外面的類的方法

// param1 (類名)? param2 (類中的方法)

NSString *param1 =@"YCAdBaiduBannerAdapter";

NSString *param2 =@"initWithAdKey:";

id class =[[NSClassFromString(param1)alloc]init];

if (class) {

SEL selector =NSSelectorFromString(param2);

if ([class respondsToSelector:selector]) {

NSInvocation *inv =[NSInvocation invocationWithMethodSignature:[class methodSignatureForSelector:selector]];

//方法中的參數 argument

NSString *argument =@"1232";

[inv setSelector:selector];

[inv setTarget:class];

[inv setArgument:&argument atIndex:2];

[inv invoke];

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容