1

コードの下のアイデアは、2 つのクラス間で対話することです。ボタンを押すと、別のクラスのステートメントを出力したい。ボタンを押しても「テスト」を印刷できませんでした。

Buttonclass.m:

 HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init];
    [knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside];

HjulGenkendelse.h

 @interface HjulGenkendelse : UIGestureRecognizer
 - (void)hjul:(UIButton *) sender;

HjulGenkendelse.m

- (void)hjul:(UIButton *) sender
{
  NSLog(@"Test!");
}

誰かが私の問題の解決策を持っていますか?

前もって感謝します:)

4

1 に答える 1

3

問題はおそらくここにあります:

HjulGenkendelse *hjulRecognizer;
[knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside];

最初の行では、オブジェクトを宣言しています。しかし、実際にはオブジェクトを作成していません。そのため、ARC を使用している場合、これを に初期化すると便利nilです。nil次に、アクションのターゲットとして追加します。ターゲットがないため、アクションは送信されません。(これは厳密には真実ではありませんが、その理由を知るには、Nil を対象としたアクションとレスポンダー チェーンを調べる必要があります)。

修正は、アクションのターゲットとなるオブジェクトを単純にインスタンス化することです。最初の行を次のように変更します

HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init];

init が HjulGenkendelse クラスに適していない場合は、適切な初期化子を使用してください。

于 2012-11-25T12:49:20.753 に答える