NSURLSessionDelegate
NSURLSessionDelegate
протокол описывает методы это NSURLSession
объекты обращаются к своим делегатам с просьбой обрабатывать события сеансового уровня. В дополнение к методам, определенным в этом протоколе, большинство делегатов должно также реализовать некоторых или все методы в NSURLSessionTaskDelegate
, NSURLSessionDataDelegate
, и NSURLSessionDownloadDelegate
протоколы для обработки событий уровня задачи.
Наследование
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.9 и позже.
-
Говорит сеансу URL, что сеанс был лишен законной силы.
Объявление
Swift
optional func URLSession(_
session
: NSURLSession, didBecomeInvalidWithErrorerror
: NSError?)Objective C
- (void)URLSession:(NSURLSession *)
session
didBecomeInvalidWithError:(NSError *)error
Параметры
session
Лишенный законной силы объект сеанса.
error
Ошибка, вызвавшая аннулирование, или
nil
если аннулирование было явным.Обсуждение
Если Вы лишаете законной силы сеанс путем вызова
finishTasksAndInvalidate
метод, сеанс ожидает до окончания заключительной задачи в концах сеанса или сбоях прежде, чем вызвать этот метод делегата. Если Вы вызываетеinvalidateAndCancel
метод, сеанс сразу вызывает этот метод делегата.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
URLSession (_: didReceiveChallenge:completionHandler:) - URLSession:didReceiveChallenge:completionHandler:
Учетные данные запросов от делегата в ответ на запрос аутентификации сеансового уровня от удаленного сервера.
Объявление
Swift
optional func URLSession(_
session
: NSURLSession, didReceiveChallengechallenge
: NSURLAuthenticationChallenge, completionHandlercompletionHandler
: (NSURLSessionAuthChallengeDisposition, NSURLCredential!) -> Void)Objective C
- (void)URLSession:(NSURLSession *)
session
didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler
Параметры
session
Сеанс, содержащий задачу, запросившую аутентификацию.
challenge
Объект, содержащий запрос на аутентификацию.
completionHandler
Обработчик, который должен вызвать Ваш метод делегата. Его параметры:
disposition
— Одна из нескольких констант, описывающая, как должна быть обработана проблема.credential
— Учетные данные, которые должны использоваться для аутентификации, если расположениеNSURLSessionAuthChallengeUseCredential
, иначеNULL
.
Обсуждение
Этот метод вызывают в двух ситуациях:
Когда удаленный сервер просит клиентские сертификаты или Диспетчер локальной сети Windows NT (NTLM), чтобы аутентификация, позволила Вашему приложению обеспечивать надлежащие учетные данные
Когда сеанс сначала устанавливает соединение с удаленным сервером, использующим SSL или TLS, чтобы позволить Вашему приложению проверять цепочку сертификата сервера
Если Вы не реализуете этот метод, сеанс вызывает своего делегата
URLSession:task:didReceiveChallenge:completionHandler:
метод вместо этого.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Константы, переданные сеансом или задачей, делегируют к предоставленному блоку продолжения в ответ на запрос аутентификации.
Объявление
Swift
enum NSURLSessionAuthChallengeDisposition : Int { case UseCredential case PerformDefaultHandling case CancelAuthenticationChallenge case RejectProtectionSpace }
Objective C
typedef NS_ENUM (NSInteger, NSURLSessionAuthChallengeDisposition ) { NSURLSessionAuthChallengeUseCredential = 0, NSURLSessionAuthChallengePerformDefaultHandling = 1, NSURLSessionAuthChallengeCancelAuthenticationChallenge = 2, NSURLSessionAuthChallengeRejectProtectionSpace = 3, };
Константы
-
UseCredential
NSURLSessionAuthChallengeUseCredential
Используйте указанные учетные данные, которые могут быть
nil
.Доступный в OS X v10.9 и позже.
-
PerformDefaultHandling
NSURLSessionAuthChallengePerformDefaultHandling
Используйте обработку значения по умолчанию для проблемы, как будто не был реализован этот метод делегата. Предоставленный учетный параметр проигнорирован.
Доступный в OS X v10.9 и позже.
-
CancelAuthenticationChallenge
NSURLSessionAuthChallengeCancelAuthenticationChallenge
Отмените весь запрос. Предоставленный учетный параметр проигнорирован.
Доступный в OS X v10.9 и позже.
-
RejectProtectionSpace
NSURLSessionAuthChallengeRejectProtectionSpace
Отклоните эту проблему и вызовите метод делегата аутентификации снова со следующим пространством защиты аутентификации. Предоставленный учетный параметр проигнорирован.
Доступный в OS X v10.9 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-