2017-10-17 10 views
0

ここで間違ったことを理解できません。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

答えて

0

ルック:

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

あなたは、引数URLURLRequestを作成しようとしています。実際のURLインスタンスを渡します。タイプはURLではありません。

考えられる解決策:

がSwift4のとおり、あなたのコードはそれさえも修正してコンパイルされないでしょう

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(クロージャ内の署名問題があります)。それ以上に、NSURLConnectionはiOS9以降では推奨されておらず、使用することはお勧めしません。 Swift-native URLSessionとそのdataTaskインスタンスメソッドで使用するコードをリファクタリングする必要があります。それは事実上同じです。

関連する問題