0

ベローは、ボタンを押したときに呼び出しているコードです。ボタンは以下のメソッドを呼び出します。しかし、「認識されないセレクターがインスタンスに送信されました」というエラーが表示されます。私は何を間違っていますか?オブジェクトは、このメソッドが呼び出される前に別のメソッドで宣言されています。ボタンも非表示にしようとしましたが、クラッシュします。誰か助けてください。

-(void) clearControlPannel{

    [buttCheck removeFromSuperview];
    [buttBet removeFromSuperview];
    [buttCall removeFromSuperview];
    [buttRaise removeFromSuperview];
    [buttFold removeFromSuperview];
    [betLabel removeFromSuperview];
    [betSlider removeFromSuperview];

}

クラッシュは次のとおりです。

スレッド 1: [buttCheck removeFromSuper]; 行の EXC_BAD_ACCESS"

-[__NSCFDictionary removeFromSuperview]: インスタンス 0x686b020 2012-06-24 19:08:12.175 HeadsUp[59630:f803] に送信れた認識されないセレクタインスタンス 0x686b020' に送信

4

2 に答える 2

3

認識されないセレクターがインスタンスに送信されました

エラーは、ランタイムがその特定のアクションに応答するメソッドを見つけることができないという事実が原因です。つまり、メソッドの名前(セレクター)をその実装にマップすることはできません。

したがって、自分のようなパラメータを受け入れないメソッドがある場合

- (void) clearControlPannel {...}

セレクターはのみになりますclearControlPannel

それ以外の場合、そのメソッドのパラメーターを指定した場合(たとえば、送信者のようにUIButton、この場合)

- (void) clearControlPannel:(id)sender {...}

セレクターはになりますclearControlPannel:。に注意して:ください。

あなたがより多くの詳細を提供するならば、我々はあなたを助けることができます。

編集

あなたを正しい方向に向けるためだけに。

インスタンスで使用– addTarget:action:forControlEvents:したことがあるUIButton場合は、2つのことを確認する必要があります。

まず、target正しく設定しましたか?はtarget、アクションのリダイレクト先のオブジェクトです。

次に、そのための適切なセレクターを設定しましたactionか?

ここに例があります:

[myButton addTarget:self action@selector(mySelector:) ...];

どこ

- (void)mySelector:(id)sender {...}

そのボタンを実装したクラスがそのアクションの使用にも応答するself場合は、それ以外の場合は、そのアクションに応答する他のインスタンスを注入する必要があります。

于 2012-06-24T17:13:38.433 に答える
-1

押しているボタンを離しているか確認してください。

于 2012-06-25T05:45:00.693 に答える