Swift: не удается получить URL от URLComponents в закрытии
Я пытаюсь создать URL-адрес и сохранить строковое представление из замыкания. После доступа к некоторому JSON, используя URLSession
Я создаю другой URL (используя URLComponents
) храниться в объекте в моей модели.
Тем не менее, мой URL продолжает возвращаться nil
неожиданно, и не удается защитное заявление, вызывая preconditionFailure(message:)
пункт.
Я могу проверить, что мой URLComponents
объект (artistComponents) не является nil
, Я пытался создать новый URLComponents
объект в закрытии, а также ссылки на URLComponents
Свойство класса из замыкания, представляющее необходимую информацию URL.
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let artistResponse = try decoder.decode(ArtistListResponse.self, from: data)
var artistComponents = URLComponents(url: this.components.url!, resolvingAgainstBaseURL: false)
// Have also tried:
// var artistComponents = this.components
// var artistComponents = URLComponents() and then proceed to fill in necessary information
artistComponents?.path = "generate"
for jsonArtist in artistResponse.data {
artistComponents?.queryItems = [URLQueryItem(name: "artist", value: jsonArtist.urlName)]
guard let artistURL = artistComponents?.url else {
preconditionFailure("Failed to construct artistURL for \(jsonArtist.name)")
}
let artist = Artist(id: this.idCount,
name: jsonArtist.name,
urlName: jsonArtist.urlName,
url: artistURL.absoluteString,
avatarURL: jsonArtist.avatarURL,
song: nil)
this.artists.append(artist)
this.idCount += 1
}
Я ищу, чтобы проверить URL, чтобы я мог добавить объект в мою модель данных. Любой совет? Заранее спасибо!