NSURLConnectionDelegate. Как я могу отменить проверку подлинности?

Я успешно использую довольно круто connection:didReceiveAuthenticationChallenge: метод делегата NSURLConnectionDelegate. Здорово.

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

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

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

А? Метод обратного вызова, который на самом деле срабатывает connection:didFailWithError:

Может кто-нибудь, пожалуйста, пролить немного света здесь?

1 ответ

Решение

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

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

Метод обратного вызова, который на самом деле срабатывает, это connection:didFailWithError:

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

[[challenge sender] cancelAuthenticationChallenge:challenge];

как описано в разделе "Отмена соединения".

Другие вопросы по тегам