iOS – перезагрузка UITableView после задержки

Я пытаюсь создать функцию расширения UITablView для перезагрузки таблицы после некоторой временной задержки, например:

extension UITableView { func reloadData(afterDelay delayTime: TimeInterval) -> Void { self.perform(#selector(self.reloadData), with: nil, afterDelay: delayTime) } } 

Но это показывает мне ошибку: Неоднозначное использование 'reloadData'

Каково его правильное решение?

Вот моментальный снимок с сообщением об ошибке введите описание изображения здесь

Переименуйте свою функцию, поскольку она конфликтует с reloadData() UITableView

 //--------- extension UITableView { // Default delay time = 0.5 seconds // Pass delay time interval, as a parameter argument func reloadDataAfterDelay(delayTime: TimeInterval = 0.5) -> Void { self.perform(#selector(self.reloadData), with: nil, afterDelay: delayTime) } } 

Я бы подошел к этому, используя блок, например:

 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayTime) { [weak self] in self?.tableView.reloadData() } 
  extension UITableView { func reloadDataAfterDelay(delayTime: TimeInterval) -> Void { let when = DispatchTime.now() + delayTime DispatchQueue.main.asyncAfter(deadline: when) { self.reloadData() } } } 

Попробуй это:

 extension UITableView { func reloadDataWithDelay(delayTime: TimeInterval) -> Void { let delayTime = DispatchTime.now() + 2 DispatchQueue.main.asyncAfter(deadline: delayTime) { self.reloadData() } } }