let defaultSession = URLSession(configuration: .default)
var dataTask: URLSessionDataTask?
dataTask?.cancel()
if var urlComponents = URLComponents(string: "https://itunes.apple.com/search") {
urlComponents.query = "media=music&entity=song&term=\(searchTerm)"
guard let url = urlComponents.url else {
return
}
dataTask =
defaultSession.dataTask(with: url) { [weak self] data, response, error in
defer {
self?.dataTask = nil
}
if let error = error {
self?.errorMessage += "DataTask error: " +
error.localizedDescription + "\n"
} else if
let data = data,
let response = response as? HTTPURLResponse,
response.statusCode == 200 {
self?.updateSearchResults(data)
DispatchQueue.main.async {
completion(self?.tracks, self?.errorMessage ?? "")
}
}
}
dataTask?.resume()
}
No comments:
Post a Comment