尝试在 Swift 4 中添加拉动刷新但出现错误
Trying to add pull to refresh in Swift 4 but getting an error
我需要帮助解决这个问题!我正在添加拉动以刷新我的 table 视图。当我拉动刷新时,我想要刷新文章。如果有知道这方面的人帮帮我就太好了,如果还有什么不对的地方。
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){
...
}
您必须添加另一个功能来刷新文章,因为您传递了一个参数:
@objc func refreshArticles() {
self.fetchArticles(fromSource: self.source))
}
并像这样添加目标:
refreshControl.addTarget(self, action: #selector(refreshArticles), for: .valueChanged)
另外,不要错过将 refreshControl 添加到 tableView,例如:
tableView.addSubview(refreshControl)
更新 fetchArticles 完成后添加以下行,例如:
refreshControl.endRefreshing()
您正在使用 session.dataTask
,因此必须将其放入:
DispatchQueue.main.async {
refreshControl.endRefreshing()
}
我需要帮助解决这个问题!我正在添加拉动以刷新我的 table 视图。当我拉动刷新时,我想要刷新文章。如果有知道这方面的人帮帮我就太好了,如果还有什么不对的地方。
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){
...
}
您必须添加另一个功能来刷新文章,因为您传递了一个参数:
@objc func refreshArticles() {
self.fetchArticles(fromSource: self.source))
}
并像这样添加目标:
refreshControl.addTarget(self, action: #selector(refreshArticles), for: .valueChanged)
另外,不要错过将 refreshControl 添加到 tableView,例如:
tableView.addSubview(refreshControl)
更新 fetchArticles 完成后添加以下行,例如:
refreshControl.endRefreshing()
您正在使用 session.dataTask
,因此必须将其放入:
DispatchQueue.main.async {
refreshControl.endRefreshing()
}