を作成し、UIGestureRecognizer
そのターゲットを親に設定していUIViewController
ます。Xcode は、アクション セレクターが宣言されていないことを警告します。
UITapGestureRecognizer *tapTest = [[UITapGestureRecognizer alloc] initWithTarget:self.traverseResponderChainforUIViewController action:@selector(handleTap:)];
Warning: Undeclared selector 'handleTap:'
私のtraverseResponderChainforUIViewController
メソッドが id を返すことを文書化することもおそらく価値があります (ただし、実装は最終的に何かを返す必要がありますisKindOfClass:[UIViewController class] or nil
):
- (id)traverseResponderChainforUIViewController;
UIViewController
最後に...セレクターは実際にはターゲットオブジェクトで宣言されているため、これは実行時に完全に機能します。
- (void)handleTap:(UIGestureRecognizer *)recognizer
{
NSLog(@"%@", recognizer.description);
}
ここでコンパイラを満足させるにはどうすればよいですか?
プログラムのアーキテクチャ (ビューからビュー コントローラーに送信されるアクション) を変更したくないのですが、やり方が間違っているのでしょうか (TM) か、完全に適切な実装のステップが欠けているだけですか?