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];
как описано в разделе "Отмена соединения".