2009-07-07 38 views
9

我怎麼能在運行時調用一個方法上的Objective-C類時我只有它的字符串形式的簽名:調用Objective-C的方法,通過名字

NSString* typeName = @"Widgets"; 
NSString* methodName = [NSString stringWithFormat:@"add%@Object:", typeName]; 

注意方法的名稱可以改變在運行時,但參數的數量保持不變 - 在這種情況下是一個參數。如果你需要傳遞參數

SEL selector = NSSelectorFromString(methodName); 
[myObject performSelector:selector]; 

也有performSelector:withObject:,並performSelector:withObject:withObject:方法:

回答

26

您可以使用類似下面。

+10

當您需要超過2個參數時,請不要忘記NSInvocation。 – dreamlax 2009-07-07 07:52:25

相關問題