я не могу использовать этот метод в моем коде вообще после перехода от беты 5 сезама беты 6.Xcode8 беты-6 - URLSession с completionHandler аргумент не работает
open func dataTask(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask
Моего код:
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:
я узнал, что я звоню handleTaskResult который имел ошибку как NSError?
, но ошибка теперь Error?
, после изменения этого он компилирует!
Я не могу обнаружить ошибку с первого взгляда. Скомпилирует ли он с «пустым» обработчиком завершения '{(данные, ответ, ошибка) в}'? –
Да, он компилируется, когда пуст, поэтому мне интересно, если что-нибудь внутри, я буду экспериментировать еще немного. – Bjarte
О, я узнал, что это было! У меня был параметр с NSError, но теперь для завершенияHandler используется Error, как бы я не получил ошибку на другой строке .... hmmmm ... – Bjarte