2010-10-07 33 views
0

如果我有這樣的方法:如何通過方法參數的選擇

- (void) foo 
{ 
} 

然後我可以通過這樣的選擇訪問:

@selector(foo) 

但如果我有一個方法是這樣的:

- (void) bar:(NSString *)str arg2:(NSString *)str2 
{ 

} 

那麼我如何通過選擇器訪問它?

回答

5

要處理選擇任意數量的,你應該使用NSInvocation,但可以使用標準的performWithSelector東西處理多達兩個對象

[foo performSelector:@selector(bar:arg2:) withObject:obj1 withObject:obj2]

2

刪除空格,參數類型和參數名稱。在你的榜樣,這將成爲:

@selector(bar:arg2:) 
+0

那麼如何你傳遞參數嗎? – 2010-10-07 04:53:25

+0

請參閱Joshua關於如何調用選擇器的答案。 – 2010-10-07 04:55:12