Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как обрабатывать различные вызовы API.
Мне удалось сделать один Api-Request и заполните каждую ячейку одинаковыми данными, но я хочу разные данные для каждой ячейки. < /p>
Мой код выглядит следующим образом: < /p>
collectionView: < /strong> < /p>
Call с CollectionView: < /p>
Код: Выделить всё
func fetchMatch() {
ApiService.sharedInstance.fetchGames(from: contentURL, completion: { (content: [[contentModel]]) in
self.content = content
self.collectionView.reloadData()
})
}
Установите URL-адрес:
func fetchGames(from url: String, completion: @escaping ([contentModel]) -> ()) {
fetchFeedForUrlString(urlString: "\(BaseUrl)/getgames/\(url)", completion: completion)
}
< /code>
fetch function: < /p>
func fetchFeedForUrlString(urlString: String, completion: @escaping (T) -> ())
{
let url = URL(string: urlString)
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
guard let data = data else {
return
}
do {
let json = try JSONDecoder().decode(T.self, from: data)
DispatchQueue.main.async {
completion(json)
}
} catch let jsonError {
print(jsonError)
}
}
task.resume()
}
< /code>
Я думаю, что я мог бы сделать многие из этих функций fetchgames, но я думаю, что это была бы плохая практика.
я Также прочитайте о диспетчерской группе, но я не совсем уверен, как я могу внедрить их в свою программу. < /p>
Кто-нибудь знает, как я могу справиться с несколькими вызорами API в хорошей практике?
Подробнее здесь: https://stackoverflow.com/questions/609 ... i-requests
Мобильная версия