2016-11-21 17 views
5

Hızla 3.0'a güncellenen hızlı bir 2.3 projem var ve aşağıdaki kod kırıldı. request bir NSURLRequest yerine URLRequest iseXcode Hatası Üye 'dataTask için belirsiz referans (with: completionHandler :)'

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() 

Ben

cevap

9

O hatayı alabilirsiniz nasıl düzeltileceği habersiz. Eğer URLRequest mutasyona eğer

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() 

Veya, var kullanın: Ayrıca

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() 

, not, ben String ile NSString değiştirdik.

İlgili konular