хорошо, я уже 2 дня пытаюсь решить эту проблему, надеясь, что кто-то может помочь.
краткая справка, я делаю запрос api для данных. используя функцию, которая вызывает созданную мной служебную функцию. теперь все работает хорошо при первой загрузке, collectionview загружается нормально. в какой-то момент я запускаю еще один звонок для получения дополнительных данных. принять сейчас я получаю ошибку URL. Это не работает на моем iphone, но отлично работает на симуляторе, поэтому не уверен, что это может быть. Вот сервисная функция, которая делает запрос api:
func fetchYoutubeData(interest: String, maxResult: Int, pageToken: String, completion: @escaping(Result<Youtube, WHError>) -> Void) {
let urlString = baseYoutubeURL+interest+youtubeAPIKey+"&maxResults=\(maxResult)&pageToken=\(pageToken)"
guard let url = URL(string: urlString) else {
completion(.failure(.URLError))
return
}
let session = URLSession.shared
let task = session.dataTask(with: url) { (data, _, error) in
if let _ = error {
completion(.failure(.DataError))
return
}
guard let data = data else { return }
do {
let result = try JSONDecoder().decode(Youtube.self, from: data)
print(result)
completion(.success(result))
} catch {
completion(.failure(.JSONError))
}
}
task.resume()
}
вот моя функция контроллера, которая вызывает сервис и обрабатывает данные по завершении:
func fetchNewData(maxResult: Int, pageToken: String) {
guard let interest = self.interest.text else { return }
print(pageToken)
NetworkServices.shared.fetchYoutubeData(interest: interest, maxResult: maxResult, pageToken: pageToken) { [unowned self] (result) in
switch result {
case .success(let youtubeGroup):
let items = youtubeGroup.items
self.youtubeData.items.append(contentsOf: items)
DispatchQueue.main.async {
self.horizontalCollectionView.reloadData()
}
case .failure(let error):
print("DOES GET ERROR")
print(error)
}
}
}
снова он отлично работает на симуляторе, но не на моем устройстве, я могу получить первый вызов на работу, но после этого, как только я использую pageToken для получения дополнительных данных, я получаю ошибку URL.
любая помощь будет серьезно оценена