使用 addTarget 调用时无法识别的选择器
Posted
技术标签:
【中文标题】使用 addTarget 调用时无法识别的选择器【英文标题】:unrecognized selector while calling using addTarget 【发布时间】:2013-02-27 09:03:07 【问题描述】:我在自定义单元格按钮上使用 addTarget,例如:
[cell.btnGet addTarget:self action:@selector(getLocal:cell:) forControlEvents:UIControlEventTouchUpInside];
应该调用这个方法:
-(void)getLocal:(id)sender withcell:(GroupListCell *)cell
// code for implement
但是当我点击按钮时,它会抛出如下错误:
2013-02-27 14:28:56.533 iosPlayer[704:11303] -[GroupView getLocal:cell:]: unrecognized selector sent to instance 0x72e1290
2013-02-27 14:28:56.534 iOSPlayer[704:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GroupView getLocal:cell:]: unrecognized selector sent to instance 0x72e1290'
这里有什么问题?
【问题讨论】:
【参考方案1】:试试这个:
[cell.btnGet addTarget:self action:@selector(getLocal:withcell:) forControlEvents:UIControlEventTouchUpInside];
【讨论】:
【参考方案2】:那个动作方法被调用:
getLocal:withcell:
而不是:
getLocal:cell:
它也不匹配任何可接受的操作方法签名,它们是:
- (IBAction)doSomething;
- (IBAction)doSomething:(id)sender;
- (IBAction)action:(id)sender forEvent:(UIEvent *)event;
(见Apple guide)
【讨论】:
以上是关于使用 addTarget 调用时无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章
UIRefreshControl addTarget 操作导致“无法识别的选择器”错误
行“addTarget ...”上无法识别的选择器,如何解决?
iPhone - 无法识别的选择器,“可能无法响应 addTarget”