UIRefreshControl addTarget 操作导致“无法识别的选择器”错误

Posted

技术标签:

【中文标题】UIRefreshControl addTarget 操作导致“无法识别的选择器”错误【英文标题】:UIRefreshControl addTarget action causing "unrecognized selector" error 【发布时间】:2014-09-13 14:34:36 【问题描述】:

我有一个UITableViewController,我在其中实现了一个UIRefreshControl 用于拉取刷新。一切正常,表格正在从我的网络服务中填充。但是当我下拉刷新时,我得到了错误:

[MyViewController refreshView]: unrecognized selector sent to instance ...

这是在抱怨 addTarget 操作:

UIRefreshControl * refresh = [[UIRefreshControl alloc] init];
[refresh addTarget:self action:@selector(refreshView) forControlEvents:UIControlEventValueChanged];

编辑器中该行的错误标志是Undeclared selector 'refreshView'

我的 refreshView 方法很简单:

- (void) refreshView: (UIRefreshControl *)refresh  
    NSLog(@"test");

关于为什么这会导致应用程序崩溃的任何想法? (我运行的是 ios 7.1)

【问题讨论】:

【参考方案1】:

如果您将方法声明为“refreshView:”(即带有参数),则需要在“@selector”位中添加一个冒号。

也就是说,一行换一个字符:

[refresh addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];

【讨论】:

哈哈谢谢,解决了。一旦可以,我会接受。赞赏

以上是关于UIRefreshControl addTarget 操作导致“无法识别的选择器”错误的主要内容,如果未能解决你的问题,请参考以下文章

无法覆盖“UIRefreshControl”类型的可变属性“refreshControl”?具有协变类型“UIRefreshControl”

下面的 UIRefreshControl 块视图

使用 UIRefreshControl

UIRefreshControl 重复出现

UIRefreshControl 自动启动

完全禁用 UIRefreshControl - iOS