2010-08-10 26 views
0

如何從classA的@selector標籤調用classB中的方法?不同於@selector的調用方法Objective-C

我可以這樣做嗎?

[tis_obj authenticate:self action:@selector([classB method]:) 
       accName:@"BOOK" User:@"User"]; 

是否有可能調用不同的類形式的方法@ selector tag?或者該方法應該始終在同一個班級?

謝謝。

回答

4

不,你不能。要調用-[classB method:],authenticate:參數必須具有classB實例,例如

classB* b = [[clasB alloc] init]; 
[tis_obj authenticate:b action:@selector(method:) …]; 
self.b = b; 
[b release]; 
1

選擇器只是一個名稱。方法調用[someObject foo:5]中的選擇器只是foo:。它沒有指定方法或接收者,只是名稱。

1

您傳遞給@selector()的名稱沒有類名。選擇器的定義是一個簡單的方法名,所以這將工作:

[tis_obj authenticate:self action:@selector(method:) 
      accName:@"BOOK" User:@"User"]; 

2

它看起來像你想tis_obj使用method選擇(如果「方法」是在你們班課程的定義)在classB。我不確定tis_obj是什麼,但我看到你在那裏傳遞了一個參數self。也許你真正尋找的是:

[tis_obj authenticate:classB 
       action:@selector(method:) 
       accName:@"BOOK" 
       User:@"User"]; 

這可能意味着tis_obj將在一個點上進行的[classB method:someArg]相當。

相關問題