开发者社区> 问答> 正文

使用UIRefreshControl

应用中用到UIRefreshControl。

遇到一些问题,请大神解答。

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.searchDisplayController.delegate = self;
    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
    [self.rearTableView addSubview:refreshControl];
}
- (void)refresh:(UIRefreshControl *)refreshControl {
    [refreshControl beginRefreshing];
    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(endRefresh:) userInfo:nil repeats:NO];
}
- (void)endRefresh:(UIRefreshControl *)refresh
{
    [refresh endRefreshing];
}

拖拽tableView会初始化计时器,但是提前2秒。然后应用就崩溃了:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFTimer endRefreshing]: unrecognized selector sent to instance 0x9c093c0'

展开
收起
爵霸 2016-03-17 12:01:12 1853 0
1 条回答
写回答
取消 提交回答
  • NSTimer的处理selector中的方法命名不妥。改成

    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(endRefresh) userInfo:nil repeats:NO];
    
    - (void)endRefresh
    {
        [refresh endRefreshing];
    }

    将refreshControl在头文件中定义成成员变量。

    2019-07-17 19:05:05
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载