Xcode error Ambiguous reference to member dataTask (with: completionHandler :) '

I have a quick project 2.3 that I just upgraded to version 3.0 and the following code broke.

let task = URLSession.shared.dataTask(with: request, completionHandler: { data, response, error in if error != nil { print("error=\(error)") return } print("response = \(response)") let responseString = NSString(data: data!, encoding: String.Encoding.utf8) print("responseString = \(responseString)") }) task.resume() 

I do not know how to fix this.

+5
source share
1 answer

You can get this error if request is NSURLRequest and not URLRequest .

 let url = URL(string: urlString)! let request = URLRequest(url: url) let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { print("error=\(error)") return } print("response = \(response)") let responseString = String(data: data, encoding: .utf8) print("responseString = \(responseString)") } task.resume() 

Or, if you mutate URLRequest , use var :

 let url = URL(string: urlString)! var request = URLRequest(url: url) request.httpMethod = "POST" request.httpBody = ... let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { print("error=\(error)") return } print("response = \(response)") let responseString = String(data: data, encoding: .utf8) print("responseString = \(responseString)") } task.resume() 

Also, note: I replaced NSString with String .

+9
source

Source: https://habr.com/ru/post/1260095/


All Articles