X X X

Pageviews

Socialize - Share

Share

Monday, March 22, 2021

Swift iOS HTTP / HTTPS new construct: NSURLSession

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

UA-42937108-2