这有点奇怪。我以编程方式创建了一个按钮,但是当我按下它时,它会给我一个InvalidArgumentException,并将一个无法识别的选择器发送给实例...这是我如何创建buton:
[placeButton addTarget:self action:@selector(selectPlace)
forControlEvents:UIControlEventTouchUpInside];
这是IBAction:
-(IBAction)selectPlace:(id)sender
{
NSLog(@"didn't work");
}
现在,如果我从方法中删除(id)sender
参数,它可以正常工作。我是否设置了一个特殊属性,将(id)sender
作为IBAction中的参数?
提前致谢。
答案 0 :(得分:1)
[placeButton addTarget:self action:@selector(selectPlace:)
forControlEvents:UIControlEventTouchUpInside];
请注意:
之后的selectPlace
。
答案 1 :(得分:0)
您需要在选择器中的方法名后面添加冒号,但仅当您的选择器指定接收参数的方法时。在您的实例中,需要冒号,因为该方法采用参数(id)sender。
如果你的方法没有任何参数,那么你就没有结肠了。