В моем приложении SwiftUI я пытаюсь получить некоторые данные из json Api и отобразить эти данные вместе с изображением. Сначала у меня есть функция, которая извлекает данные из Api, затем у меня есть другая функция, которая загружает данные изображения. Изображение появится через некоторое время (1-2) секунды. Мне интересно, лучший ли это способ сделать это, особенно если я загружаю несколько изображений для отображения их в списке или сетке.
func fetchAPI() {
URLSession.shared.dataTask(with: url) { (data, response, error) in
/* Code that decodes the json and gets the imageURL string */
DispatchQueue.main.async {
self.downloadImage(url: imageURL) // call the function that downloads the imageData
}
} catch {
print("Error: (error.localizedDescription)")
}
}
.resume()
}
Функция, скачивающая изображение:
func downloadImage(url: String) {
guard let imageURL = URL(string: url) else {
print("Error: Invalid image URL")
return
}
URLSession.shared.dataTask(with: imageURL) { data, response, error in
guard let recievedData = data, error == nil else {
print("Error: No Data")
return
}
DispatchQueue.main.async {
self.imageData = recievedData
}
}
.resume()
}