如何從classA的@selector標籤調用classB中的方法?不同於@selector的調用方法Objective-C
我可以這樣做嗎?
[tis_obj authenticate:self action:@selector([classB method]:)
accName:@"BOOK" User:@"User"];
是否有可能調用不同的類形式的方法@ selector tag?或者該方法應該始終在同一個班級?
謝謝。
如何從classA的@selector標籤調用classB中的方法?不同於@selector的調用方法Objective-C
我可以這樣做嗎?
[tis_obj authenticate:self action:@selector([classB method]:)
accName:@"BOOK" User:@"User"];
是否有可能調用不同的類形式的方法@ selector tag?或者該方法應該始終在同一個班級?
謝謝。
不,你不能。要調用-[classB method:]
,authenticate:參數必須具有classB實例,例如
classB* b = [[clasB alloc] init];
[tis_obj authenticate:b action:@selector(method:) …];
self.b = b;
[b release];
選擇器只是一個名稱。方法調用[someObject foo:5]
中的選擇器只是foo:
。它沒有指定方法或接收者,只是名稱。
您傳遞給@selector()的名稱沒有類名。選擇器的定義是一個簡單的方法名,所以這將工作:
[tis_obj authenticate:self action:@selector(method:)
accName:@"BOOK" User:@"User"];
:
它看起來像你想tis_obj
使用method
選擇(如果「方法」是在你們班課程的定義)在classB
。我不確定tis_obj
是什麼,但我看到你在那裏傳遞了一個參數self
。也許你真正尋找的是:
[tis_obj authenticate:classB
action:@selector(method:)
accName:@"BOOK"
User:@"User"];
這可能意味着tis_obj
將在一個點上進行的[classB method:someArg]
相當。