0

波纹管是我按下按钮时调用的代码。该按钮将调用下面的方法。但是我收到“发送到实例的无法识别的选择器”错误。我究竟做错了什么?在调用此方法之前,已在另一种方法中声明了对象。我也试过隐藏按钮,但它们也会崩溃。有人请帮忙。

-(void) clearControlPannel{

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

}

崩溃是:

[buttCheck removeFromSuper]; 行上的线程 1:EXC_BAD_ACCESS"

-[__NSCFDictionary removeFromSuperview]:无法识别的选择器发送到实例 0x686b020 2012-06-24 19:08:12.175 HeadsUp[59630:f803] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFDictionary removeFromSuperview]:无法识别的选择器发送到实例 0x686b020'

4

2 回答 2

3

无法识别的选择器发送到实例

错误是由于运行时无法找到将响应该特定操作的方法。换句话说,它无法将您的方法(选择器)的名称与其实现进行映射。

所以,如果你有一个不接受像你这样的参数的方法

- (void) clearControlPannel {...}

选择器将只有clearControlPannel.

否则,如果您为该方法指定了一个参数(例如,像发送者一样,UIButton在这种情况下)像

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

选择器将是clearControlPannel:. 注意:

如果您提供更多详细信息,我们可以为您提供帮助。

编辑

只是为了为您指明正确的方向。

如果您– addTarget:action:forControlEvents:UIButton实例上使用过,则必须检查两件事。

首先,你设置target正确了吗?是动作将target被重定向到的对象。

其次,您是否为此设置了正确的选择器action

这里有一个例子:

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

在哪里

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

如果您实现该按钮的类也将响应该操作 use self,否则您需要注入一些其他实例来响应该操作。

于 2012-06-24T17:13:38.433 回答
-1

检查您是否正在释放您正在按下的按钮。

于 2012-06-25T05:45:00.693 回答