2017-01-09 2 views
3

Я пытаюсь получить selector метода, определенного в URLSessiondataTask(with:completionHandler:), который использует URLRequest объект, как показано ниже, но получаю ошибку, поскольку есть два метода с немного два разных Params имен (перегруженные методы - 1. один использует URLRequest объект как парам, а другой использует URL):неоднозначное использование селектора dataTask (с: completionHandler :)

let dataTaskSelector = #selector(URLSession.dataTask(with: completionHandler:)) 

Я попробовал другой подход, как показано ниже (упоминается в https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md), но это также дает ту же ошибку:

let mySelector = #selector((URLSession.dataTask(with: completionHandler:)) as (URLSession) -> (URLRequest, (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask) 

enter image description here

Я использую последние Xcode и swift 3. Я пока не нашел хорошую документацию с похожим примером, к сожалению, до сих пор. Пожалуйста помоги.

Заранее благодарен!

+1

@vadian, Извините, что сообщаете вам, что вопрос здесь другой, и я не нашел ответа о том, как создать селектор для этого метода без этой ошибки. – Tushar

+1

@Sri, вопрос здесь другой. вы слишком быстро указали на эту ссылку. Я уже прошел это, прежде чем публиковать это. – Tushar

+0

Я снова открыл вопрос. Почему бы вам не создать настраиваемый селектор/метод, который вызывает соответствующий метод 'URLSession'? – vadian

ответ

3

Вы можете написать, что selector вот так.

let selector = #selector((URLSession.dataTask(with:completionHandler:)) as (URLSession) -> (URLRequest, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask) 

Это #selectortutorial помочь мне получить решение.

+0

Отлично !!! Спасибо тонну Nirav :) Я пытался с синтаксисом очень близко к вам, но пропустил слово «@ escaping». Также вы можете изменить синтаксис, чтобы использовать URLRequest вместо URL-адреса, чтобы соответствовать точному вопросу. Не важно для меня, хотя .. Я получил то, что мне было нужно .. спасибо еще раз :) – Tushar

+0

@Tushar Приветственный помощник и отредактированный ответ для 'URLRequest' :) –

+1

Ты сделал мой день !!! – Tushar

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