@selector() で指定する method で、引数がある場合

selector 内で method を指定する時、引数として何か渡したい時はどうするか。引数が 1 つしかないなら、“:”を書くだけで OK。次のような感じ・・・

    UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageView:)];

 

実際に、selector で指定している method はどうなっているのかというと、次のような感じ・・・

- (void) tapImageView:(id)tapping

 

selector 内では、実引数を書く必要がないのがなんともわかりにくいところなのですが、これでうまく動くので、objective-c の言語仕様ということで覚えておきます。

 

ちなみに、method で指定した tapping の型は魔法の id としましたが、より丁寧に書くなら、UITouch* になると。