para - Error de Xcode Referencia ambigua a dataTask del miembro(con: completionHandler:) ''
xcode simulator (1)
Esta pregunta ya tiene una respuesta aquí:
Tengo un proyecto rápido 2.3 que acabo de actualizar a swift 3.0 y se rompió el siguiente código.
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()
No sé cómo solucionarlo
Puede obtener ese error si la request es una request NSURLRequest lugar de una request NSURLRequest .
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()
O bien, si está mutando la 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()
Además, tenga en cuenta que he reemplazado NSString con String .