ターゲットとコールバックを指定できる多くのObjective-C/Cocoa SDK APIがあります。クラス間で@selectorメソッドを呼び出す
が、私は私のクラスの2で同じことをやってみたいが、私はセレクタに渡さ保存し、後でそれを起動しようとすると、私は例外を取得、
「認識されていないセレクタが インスタンスに送信されました」
私がClassBのには、このようなターゲットとアクションをオフに渡します
[myClassB doSomething:self action:@selector(anAction:)];
ClassBのは、このように宣言して実装されます。ビルドプロセス中に
@interface ClassB
{
id target;
SEL targetAction;
}
@implementation ClassB
-(void)theWork {
if ([target respondsToSelector:targetAction])
{
[target targetAction];
}
}
、私はまた、次の警告を受ける:NO '-targetAction' メソッドは、どのように供給されたターゲット・アクションを呼び出すことができます
を
見つかりませんか?私が達成したい何
は、次のようになります。
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelItem:)];