无法将类型URL.Type预期参数类型“URL”

无法将类型URL.Type预期参数类型“URL”

问题描述:

的价值,我不知道哪里出了问题在这里,无法将类型URL.Type预期参数类型“URL”

//现在实际发送请求到服务器。

NSURLConnection.sendAsynchronousRequest(request as? URLRequest ?? URLRequest(url: URL), queue: OperationQueue.main, completionHandler: {(_ response: URLResponse, _ data: Data, _ connectionError: Error?) -> Void in 
     var resultText: String? = nil 
     if connectionError != nil { 
      resultText = "** ERROR = \(connectionError)" 
      print("**Error \(unsuccessLabel.text)") 
      uploadPleaseWaitLabel.hidden = true 
      //****** 12-17 
      unsuccessLabel.hidden = false 
      //****** 12-17 
      sessionUploadedYorN = "N" 
      self.useDocument() 
     } 
     else { 
+0

我收到错误:无法将类型URL.Type的值转换为预期的参数类型'URL' – Moran

看这句话:

request as? URLRequest ?? URLRequest(url: URL) 

您正试图创建的说法URLURLRequest。只是通过那里真实URL实例,而不是URL类型。

可能的解决办法:

let actualRequest = request as? URLRequest ?? URLRequest(url: URL(string:"http://www.google.com")!) 
NSURLConnection.sendAsynchronousRequest(actualRequest, 
             queue: OperationQueue.main, 
             completionHandler: 
    { (_ response: URLResponse, _ data: Data, _ connectionError: Error?) -> Void in 
     var resultText: String? = nil 
     if connectionError != nil { 
      resultText = "** ERROR = \(connectionError)" 
      print("**Error \(unsuccessLabel.text)") 
      uploadPleaseWaitLabel.hidden = true 
      //****** 12-17 
      unsuccessLabel.hidden = false 
      //****** 12-17 
      sessionUploadedYorN = "N" 
      self.useDocument() 
    } 

UPDATE

由于Swift4的,你的代码甚至不会与修复编译(有接线盒中的签名问题)。更重要的是,NSURLConnection自iOS9开始不推荐使用,不鼓励使用。 您应该重构您的代码以使用Swift本机URLSession及其实例方法dataTask。它几乎是一样的。