5

Я успешно использую довольно устрашающий connection:didReceiveAuthenticationChallenge: метод делегата NSURLConnectionDelegate. Круто.NSURLConnectionDelegate. Как отменить вызов аутентификации?

Я хочу, чтобы ваша поддержка была надлежащим образом поддержана, позволяя пользователю отменить проверку подлинности. Итак, GUI, который я представляю пользователю, имеет кнопку отмены, и вопрос заключается в том, какое поведение должно произойти за этой кнопкой.

В настоящее время я делаю это [[challenge sender] cancelAuthenticationChallenge:challenge], и я внедрил метод NSURLConnectionDelegate connection:didCancelAuthenticationChallenge:. В документах Apple я заметил эту довольно неоднозначную ноту для этого обратного вызова:

Доступно как часть неофициального протокола до iOS 5.0.

А? Метод обратного вызова, который фактически срабатывает, - connection:didFailWithError:

Может кто-то пролить свет здесь?

ответ

4

Available as part of an informal protocol prior to iOS 5.0.

Это просто означает, что метод делегата о котором идет речь, не является частью официального протокола, т.е. одна объявлена ​​с помощью директивы @protocol. Методы в неофициальном протоколе обычно документируются вместе с классом, который их назвал бы.

The callback method that actually fires is connection:didFailWithError:

Оба -connection:didCancelAuthenticationChallenge: и -connection:didFailWithError: имеют ту же ноту о будучи частью неофициального протокола до прошивки 5.0. Похоже, что ваше соединение не загружает данные, а не отменяется. Вы, вероятно, получить прежнее сообщение, если вы отменили вызов по телефону:

[[challenge sender] cancelAuthenticationChallenge:challenge]; 

, как описано в Canceling the Connection.

+0

Калеб - на самом деле в моем вопросе есть ошибка. Я на самом деле звоню [[вызов отправителя] cancelAuthenticationChallenge: challenge]. Это странно. Это как если бы этот метод был не-op. Кажется, он ничего не делает. – dugla

+0

Я только что исправил ошибку в моем вопросе. – dugla

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