Во-первых, ваш ...
struct codable
... вообще не является структурой, это класс.изменить это на фактическую структуру.
Во-вторых, вы начинаете загрузку до того, как ваш делегат и источник данных настроены на просмотр таблицы.
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
downloadJson()
}
В-третьих, вы используете Alamofire для простого запроса GET, но игнорируете факт асинхронной загрузки изображений для ячейки, что вы делаете с помощью Data
.Я бы предложил использовать AlamoFireImageDownloader или удаленный AlamoFire вместе.Использовать URLSession так же просто:
private func request(url: URL, completionHandler: @escaping ((Data?, URLResponse?, Error?) -> Void)) {
var request = URLRequest(url: url)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request, completionHandler: completionHandler)
task.resume()
}
В-четвертых, я не думаю, что вам нужен кодированный loads
.
Просто дополнительное напоминание, в зависимости отколичество Load
s у вас будет в вашей таблице, у вас будут проблемы с загрузкой ваших изображений.Завершения не гарантированно завершаются по порядку, но когда они это сделают, они обновят ячейку независимо от того, используется ли ячейка повторно для другой Load
или нет.Просто к вашему сведению.