我看到很多Objective-C/Cocoa SDK API,您可以在其中指定一個目標和一個將被回調的動作。在類之間調用@selector方法
我想要做同樣在我的兩個班的,但是當我存儲在選擇的通過,稍後嘗試調用它,我得到的異常,
「無法識別的選擇發送到 實例」
我轉嫁給ClassB的目標和行動是這樣的:
[myClassB doSomething:self action:@selector(anAction:)];
ClassB的聲明,併爲實施這一方法的:
@interface ClassB
{
id target;
SEL targetAction;
}
@implementation ClassB
-(void)theWork {
if ([target respondsToSelector:targetAction])
{
[target targetAction];
}
}
在生成過程中,我也得到了以下警告:
沒有「-targetAction」的方法發現
我如何可以調用進行供給目標的行動?
我想達到什麼是與此類似:
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self
action:@selector(cancelItem:)];