试图在Swift 4中添加pull来刷新但是出错了

问题描述 投票:1回答:1

我需要帮助解决这个问题!我正在添加pull来刷新我的表视图。当我拉动刷新时,我希望文章能够刷新。如果知道这一点的人会帮助我会很棒,如果还有其他错误的话。

Argument of '#selector' does not refer to an '@objc' method, property, or initializer

错误在这里:

refreshControl.addTarget(self, action: #selector(fetchArticles(fromSource: source)), for: .valueChanged)
    return refreshControl
}()

这是函数fetchArticles

@objc func fetchArticles(fromSource provider: String){
    ...
}
ios swift pull-to-refresh
1个回答
0
投票

您必须添加另一个函数来刷新文章,因为您传递了一个参数:

@objc func refreshArticles() {
    self.fetchArticles(fromSource: self.source))
}

和addTarget像这样:

refreshControl.addTarget(self, action: #selector(refreshArticles), for: .valueChanged)

另外,不要错过将refreshControl添加到tableView,如下:

tableView.addSubview(refreshControl)

更新fetchArticles完成后添加以下行,如下所示:

refreshControl.endRefreshing()

你正在使用session.dataTask所以这必须进入:

DispatchQueue.main.async {
    refreshControl.endRefreshing()
}
© www.soinside.com 2019 - 2024. All rights reserved.