2016-08-17 2 views
2

を働いていないと私はベータ6Xcode8ベータ6 - URLSession completionHandler引数は

open func dataTask(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask 

ゴマベータ5から私のコードを変更した後で、すべての私のコードでは、このメソッドを使用するように見えることはできません。

 let task = self.createSession().dataTask(with: request, completionHandler: { (data, response, error) in 
      self.handleTaskResult(data: data, response: response, error: error, completionHandler: completionHandlerIncoming) 
     }) 

私はそれを得る"Cannot invoke 'dataTask' with an argument list of type '(with: URLRequest, completionHandler: (Data?, URLResponse?, Error?) -> Void)'"。これが関数の完成であるにもかかわらず、xcodeが私に与えます。

私は、しようとした場合:

 let task = self.createSession().dataTask(with: request) { data, response, error in 
      self.handleTaskResult(data: data, response: response, error: error, completionHandler: completionHandlerIncoming) 
     } 

それはまだ動作しません。

UPDATE:私はNSError?としてエラーが発生しましたhandleTaskResultを呼んでいたことが分かったが、エラーが今Error?ある

は、これを変更した後、それがコンパイルされます!

+0

一見したところエラーを見つけることはできません。それは "空の"補完ハンドラ '{(データ、レスポンス、エラー)}'でコンパイルされますか? –

+0

はい空の時にコンパイルするので、内部に何かがあるかどうか疑問に思っています。もう少し実験します。 – Bjarte

+0

ああ私はそれが何かを知った!私はNSErrorのパラメータを持っていましたが、現在completionHandlerはErrorを使用していますが、他の行にエラーが発生したことはありますか? – Bjarte

答えて

1

NSError?というエラーが発生したhandleTaskResultを呼び出していましたが、これを変更した後にエラーError?が発生しました。

関連する問題