Попытка добавить pull для обновления в Swift 4, но получаю ошибку
Мне нужна помощь в решении этой проблемы! Я добавляю тягу, чтобы обновить мой вид таблицы. Когда я потяну, чтобы обновить, я хочу, чтобы статьи обновились. Если бы кто-то, кто знает это, помог бы мне, был бы великолепен, и если есть что-то еще, также неправильное.
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){
...
}
1 ответ
Решение
Вы должны добавить еще одну функцию для обновления статей, потому что вы передаете параметр:
@objc func refreshArticles() {
self.fetchArticles(fromSource: self.source))
}
И добавить цель так:
refreshControl.addTarget(self, action: #selector(refreshArticles), for: .valueChanged)
Кроме того, не пропустите добавить refreshControl в tableView, как таковой:
tableView.addSubview(refreshControl)
Обновить Добавьте следующую строку после завершения fetchArticle, как таковой:
refreshControl.endRefreshing()
Ты используешь session.dataTask
так что это должно идти внутрь:
DispatchQueue.main.async {
refreshControl.endRefreshing()
}