を働いていないと私はベータ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?
ある
は、これを変更した後、それがコンパイルされます!
一見したところエラーを見つけることはできません。それは "空の"補完ハンドラ '{(データ、レスポンス、エラー)}'でコンパイルされますか? –
はい空の時にコンパイルするので、内部に何かがあるかどうか疑問に思っています。もう少し実験します。 – Bjarte
ああ私はそれが何かを知った!私はNSErrorのパラメータを持っていましたが、現在completionHandlerはErrorを使用していますが、他の行にエラーが発生したことはありますか? – Bjarte