NSURLConnectionDelegate
NSURLConnectionDelegate протокол определяет методы, характерные для NSURLConnectionDataDelegate и NSURLConnectionDownloadDelegate протоколы.
Делегаты NSURLConnection объекты должны реализовать или данные или делегата загрузки протокол (включая методы, описанные в этом протоколе). В частности:
Если Вы используете
NSURLConnectionв сочетании с Ньюсстэндом КитомdownloadWithDelegate:метод, класс делегата должен реализоватьNSURLConnectionDownloadDelegateпротокол.Иначе, класс делегата должен реализовать
NSURLConnectionDataDelegateпротокол.
Делегаты, хотящие выполнить пользовательскую обработку аутентификации, должны реализовать connection:willSendRequestForAuthenticationChallenge: метод, который является предпочтительным механизмом для ответа на запросы аутентификации. (См. Ссылку класса NSURLAuthenticationChallenge для получения дополнительной информации о запросах аутентификации.), Если connection:willSendRequestForAuthenticationChallenge: не реализован, более старые, устаревшие методы connection:canAuthenticateAgainstProtectionSpace:, connection:didReceiveAuthenticationChallenge:, и connection:didCancelAuthenticationChallenge: вызываются вместо этого.
connection:didFailWithError: если ошибка происходит во время загрузки ресурса, метод вызывают самое большее один раз. connectionShouldUseCredentialStorage: метод вызывают один раз, непосредственно перед тем, как начинается загрузка ресурса.
Наследование
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.7 и позже.
-
соединение (_: willSendRequestForAuthenticationChallenge:) - connection:willSendRequestForAuthenticationChallenge:Говорит делегату, что соединение отправит запрос для запроса аутентификации.
Объявление
Swift
optional func connection(_connection: NSURLConnection, willSendRequestForAuthenticationChallengechallenge: NSURLAuthenticationChallenge)Objective C
- (void)connection:(NSURLConnection *)connectionwillSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challengeПараметры
connectionСоединение, отправляющее сообщение.
challengeЗапрос аутентификации, для которого отправляется запрос.
Обсуждение
Этот метод позволяет делегату делать обоснованное решение об аутентификации соединения сразу. Если делегат реализует этот метод, он не имеет никакой потребности реализовать
connection:canAuthenticateAgainstProtectionSpace:илиconnection:didReceiveAuthenticationChallenge:. Фактически, те другие методы не вызываются (за исключением более старых операционных систем, где применимо).В этом методе необходимо вызвать один из методов респондента проблемы (
NSURLAuthenticationChallengeSenderпротокол):Вы могли бы также хотеть проанализировать
challengeдля схемы аутентификации и предложенных учетных данных прежде, чем вызвать aNSURLAuthenticationChallengeSenderметод. Вы никогда не должны предполагать, что присутствуют предложенные учетные данные. Можно или создать собственные учетные данные и ответить этим, или можно передать предложенные учетные данные обратно. (Поскольку этот объект является неизменным, если Вы хотите изменить его, необходимо скопировать его и затем изменить копию.)Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
соединение (_: canAuthenticateAgainstProtectionSpace:) - connection:canAuthenticateAgainstProtectionSpace:(OS X v10.10)Отправленный, чтобы определить, в состоянии ли делегат реагировать на форму пространства защиты аутентификации.
Объявление
Swift
optional func connection(_connection: NSURLConnection, canAuthenticateAgainstProtectionSpaceprotectionSpace: NSURLProtectionSpace) -> BoolObjective C
- (BOOL)connection:(NSURLConnection *)connectioncanAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpaceПараметры
connectionСоединение, отправляющее сообщение.
protectionSpaceПространство защиты, генерирующее запрос аутентификации.
Возвращаемое значение
YEStrueесли делегат, если способный для ответа на форму пространства защиты аутентификации, иначеNOfalse.Обсуждение
Этот метод вызывают прежде
connection:didReceiveAuthenticationChallenge:, разрешение делегату проверить пространство защиты прежде, чем попытаться аутентифицировать против него. Путем возвратаYEStrue, делегат указывает, что это может обработать форму аутентификации, к которой это делает в последующем вызовеconnection:didReceiveAuthenticationChallenge:. Если возвращается делегатNOfalse, система пытается использовать цепочку для ключей пользователя для аутентификации. Если Ваш делегат не реализует этот метод, и пространство защиты использует клиентскую аутентификацию сертификата или аутентификацию доверия сервера, система ведет себя, как будто Вы возвратилисьNOfalse. Система ведет себя, как будто Вы возвратилисьYEStrueдля всех других методов аутентификации.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
Осуждаемый в OS X v10.10.
Доступный как часть неофициального протокола до OS X v10.7.
-
соединение (_: didCancelAuthenticationChallenge:) - connection:didCancelAuthenticationChallenge:(OS X v10.10)Отправленный, когда соединение отменяет запрос аутентификации.
Объявление
Swift
optional func connection(_connection: NSURLConnection, didCancelAuthenticationChallengechallenge: NSURLAuthenticationChallenge)Objective C
- (void)connection:(NSURLConnection *)connectiondidCancelAuthenticationChallenge:(NSURLAuthenticationChallenge *)challengeПараметры
connectionСоединение, отправляющее сообщение.
challengeОтмененная проблема.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.10.
Доступный как часть неофициального протокола до OS X v10.7.
-
соединение (_: didReceiveAuthenticationChallenge:) - connection:didReceiveAuthenticationChallenge:(OS X v10.10)Отправленный, когда соединение должно аутентифицировать проблему для загрузки ее запроса.
Объявление
Swift
optional func connection(_connection: NSURLConnection, didReceiveAuthenticationChallengechallenge: NSURLAuthenticationChallenge)Objective C
- (void)connection:(NSURLConnection *)connectiondidReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challengeПараметры
connectionСоединение, отправляющее сообщение.
challengeПроблема это
connectionдолжен аутентифицировать для загрузки его запроса.Обсуждение
Этот метод дает делегату возможность определить план действий, взятый для проблемы: обеспечьте учетные данные, продолжайте, не обеспечивая учетные данные или отмените запрос аутентификации и загрузку.
Делегат может определить число предыдущих запросов аутентификации путем отправки сообщения
previousFailureCountкchallenge.Если предыдущее число отказов 0 и значение, возвращенное
proposedCredentialnil, делегат может создать новый объект NSURLCredential, предоставив информацию, определенную для типа учетных данных, и отправить auseCredential:forAuthenticationChallenge:сообщение к[challenge sender], передача учетных данных иchallengeкак параметры. ЕслиproposedCredentialнеnil, значение является учетными данными от URL или совместно используемого учетного хранения, которое может быть предоставлено для пользователя как обратная связь.Делегат может решить отказаться от дальнейших попыток аутентификации в любое время путем отправки
[challenge sender]acontinueWithoutCredentialForAuthenticationChallenge:или acancelAuthenticationChallenge:сообщение. Определенное действие является зависящим от реализации.Если делегат реализует этот метод, то загрузка приостановит до
[challenge sender]отправляется одно из следующих сообщений:useCredential:forAuthenticationChallenge:,continueWithoutCredentialForAuthenticationChallenge:илиcancelAuthenticationChallenge:.Если делегат не реализует этот метод, реализация по умолчанию используется. Если допустимые учетные данные для запроса предоставлены как часть URL или доступны от NSURLCredentialStorage
[challenge sender]отправляется auseCredential:forAuthenticationChallenge:с учетными данными. Если проблема не имеет никаких учетных данных, или учетным данным не удается авторизовать доступ, тоcontinueWithoutCredentialForAuthenticationChallenge:отправляется в[challenge sender]вместо этого.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.10.
Доступный как часть неофициального протокола до OS X v10.7.
-
Отправленный, чтобы определить, должен ли загрузчик URL использовать учетное хранение для аутентификации соединения.
Объявление
Swift
optional func connectionShouldUseCredentialStorage(_connection: NSURLConnection) -> BoolObjective C
- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connectionПараметры
connectionСоединение, отправляющее сообщение.
Обсуждение
Этот метод вызывают, прежде чем любая попытка аутентифицировать предпринята.
Если Вы возвращаетесь
NOfalse, соединение не консультируется с учетным хранением автоматически и не хранит учетные данные. Однако в Вашемconnection:didReceiveAuthenticationChallenge:метод, можно консультироваться с учетным хранением сами и сохранить учетные данные сами по мере необходимости.Не реализация этого метода совпадает с возвратом
YEStrue.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Отправленный, когда связь прерывается загрузить свой запрос успешно.
Объявление
Swift
optional func connection(_connection: NSURLConnection, didFailWithErrorerror: NSError)Objective C
- (void)connection:(NSURLConnection *)connectiondidFailWithError:(NSError *)errorПараметры
connectionСоединение, отправляющее сообщение.
errorОшибочный объект, содержащий подробные данные того, почему связь прервалась загрузить запрос успешно.
Обсуждение
Как только делегат получает это сообщение, оно не получит дальнейших сообщений для
connection.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
