调用IBAction iphone时出现InvalidArgumentException

时间:2011-08-22 14:43:33

标签: iphone objective-c cocoa-touch

这有点奇怪。我以编程方式创建了一个按钮,但是当我按下它时,它会给我一个InvalidArgumentException,并将一个无法识别的选择器发送给实例...这是我如何创建buton:

[placeButton addTarget:self action:@selector(selectPlace)
               forControlEvents:UIControlEventTouchUpInside];

这是IBAction:

-(IBAction)selectPlace:(id)sender
{
        NSLog(@"didn't work");
}

现在,如果我从方法中删除(id)sender参数,它可以正常工作。我是否设置了一个特殊属性,将(id)sender作为IBAction中的参数?

提前致谢。

2 个答案:

答案 0 :(得分:1)

[placeButton addTarget:self action:@selector(selectPlace:)
               forControlEvents:UIControlEventTouchUpInside];

请注意:之后的selectPlace

答案 1 :(得分:0)

您需要在选择器中的方法名后面添加冒号,但仅当您的选择器指定接收参数的方法时。在您的实例中,需要冒号,因为该方法采用参数(id)sender。

如果你的方法没有任何参数,那么你就没有结肠了。