說我有這樣的實例方法[1]:動態的方法添加到應用程序委託
-(BOOL)application:(UIApplication *)application
openURL:(NSURL *)url {
NSLog(@"url --> %@", url);
//Do something...
return YES;
}
如果我沒有記錯,[[UIApplication sharedApplication] delegate]
[2] 是我的應用程序委託的實例。
我想動態地將我的實例方法[1]添加到任何其他類的應用程序委託[2]。
我發現class_addMethod
*info可能會幫助我,但它沒有提及如何指定它的實例方法或類方法。
編輯:
繼@mipadi的建議波紋管,我想打電話給
class_addMethod([AppDelegate class], @selector(newMethod), (IMP)myMethodIMP, "[email protected]:");
,但我得到了以下錯誤:
Missing '[' at start of message send expression
Expected ']'
Size of array has non-integer type 'Class'
與以下警告:
Type specifier missing, defaults to 'int'
我真的不知道什麼是錯誤的,這個錯誤沒有多大意義的我。
爲什麼?解釋你真正想要完成的事情。您的問題可能有更好的解決方案。 – rmaddy
是的,聽起來像[X-Y問題](http://meta.stackexchange.com/q/66377/192165)。 –
我想不出一個用例。你能解釋一下你爲什麼要這樣做嗎? – vikingosegundo