2016-08-17 2 views
2

я не могу использовать этот метод в моем коде вообще после перехода от беты 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?, после изменения этого он компилирует!

+0

Я не могу обнаружить ошибку с первого взгляда. Скомпилирует ли он с «пустым» обработчиком завершения '{(данные, ответ, ошибка) в}'? –

+0

Да, он компилируется, когда пуст, поэтому мне интересно, если что-нибудь внутри, я буду экспериментировать еще немного. – Bjarte

+0

О, я узнал, что это было! У меня был параметр с NSError, но теперь для завершенияHandler используется Error, как бы я не получил ошибку на другой строке .... hmmmm ... – Bjarte

ответ

1

Я узнал, что я вызывал handleTaskResult, у которого была ошибка NSError?, но теперь ошибка Error?, после ее смены!

Смежные вопросы