1

次のオプションで適切に初期化するボタンを作成するクラスのカテゴリがあります

[cancelButton addTarget:self action:@selector(cancelReconnect:) forControlEvents:UIControlEventTouchUpInside];

次に、同じcategory.mファイルにメソッドがあります

-(void)cancelReconnect{ NSLog(@"here!"); }

カテゴリをインポートするクラスをインポートするビューコントローラーでボタンを押すと、EXC_BAD_ACCESS が発生し、メソッド/クラスがリリースされたように見えます。

「self」があるビューコントローラーに同じ cancelReconnect メソッドを配置した場合。同じ結果です。

私の addTarget は正しいですか? 私のセレクターメソッドはリリースされていますか? これを解決するには?

カスタム クラスの .h ファイルの toolBarItems 配列は強力ですが、配列内のボタンが強力かどうかはわかりません。View Controller はクラスのカテゴリ メソッドへの強力なポインタを保持していますか

4

1 に答える 1

3

あなたはよくある間違いを犯しています。実際のメソッドには名前cancelReconnectが付けられていますが、セレクターに名前が付けられていることをボタンに伝えますcancelReconnect:(コロンに注意してください)。

メソッドを次のように変更します。

- (void)cancelReconnect:(UIButton *)button {
    NSLog(@"here!");
}
于 2013-04-11T01:39:21.420 に答える