NSURLSessionDelegate
Наследование
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 7.0 и позже.
NSURLSessionDelegate
протокол описывает методы это NSURLSession
объекты обращаются к своим делегатам с просьбой обрабатывать события сеансового уровня. В дополнение к методам, определенным в этом протоколе, большинство делегатов должно также реализовать некоторых или все методы в NSURLSessionTaskDelegate
, NSURLSessionDataDelegate
, и NSURLSessionDownloadDelegate
протоколы для обработки событий уровня задачи.
-
Говорит сеансу 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
Доступность
Доступный в iOS 7.0 и позже.
-
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
Доступность
Доступный в iOS 7.0 и позже.
-
URLSessionDidFinishEventsForBackgroundURLSession (_:) - URLSessionDidFinishEventsForBackgroundURLSession:
Говорит делегату, что были переданы все сообщения, ставившие в очередь для сеанса.
Объявление
Swift
optional func URLSessionDidFinishEventsForBackgroundURLSession(_
session
: NSURLSession)Objective C
- (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)
session
Параметры
session
Сеанс, больше не имеющий выдающихся запросов.
Обсуждение
В iOS, когда фоновая передача завершает или требует учетных данных, если Ваше приложение больше не работает, Ваше приложение автоматически повторно запускается в фоновом режиме, и приложение
UIApplicationDelegate
отправляетсяapplication:handleEventsForBackgroundURLSession:completionHandler:
сообщение. Этот вызов содержит идентификатор сеанса, заставившего Ваше приложение быть запущенным. Ваше приложение должно тогда сохранить тот обработчик завершения прежде, чем создать фоновый объект конфигурации с тем же идентификатором и создать сеанс с той конфигурацией. Недавно создаваемый сеанс автоматически повторно связан с продолжающимся фоновым действием.Когда Ваше приложение позже получает a
URLSessionDidFinishEventsForBackgroundURLSession:
сообщение, это указывает, что были переданы все сообщения, ранее ставившие в очередь для этого сеанса, и что теперь безопасно вызвать ранее сохраненный обработчик завершения или начать любые внутренние обновления, которые могут привести к вызову обработчика завершения.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 7.0 и позже.
-
Константы, переданные сеансом или задачей, делегируют к предоставленному блоку продолжения в ответ на запрос аутентификации.
Объявление
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
.Доступный в iOS 7.0 и позже.
-
PerformDefaultHandling
NSURLSessionAuthChallengePerformDefaultHandling
Используйте обработку значения по умолчанию для проблемы, как будто не был реализован этот метод делегата. Предоставленный учетный параметр проигнорирован.
Доступный в iOS 7.0 и позже.
-
CancelAuthenticationChallenge
NSURLSessionAuthChallengeCancelAuthenticationChallenge
Отмените весь запрос. Предоставленный учетный параметр проигнорирован.
Доступный в iOS 7.0 и позже.
-
RejectProtectionSpace
NSURLSessionAuthChallengeRejectProtectionSpace
Отклоните эту проблему и вызовите метод делегата аутентификации снова со следующим пространством защиты аутентификации. Предоставленный учетный параметр проигнорирован.
Доступный в iOS 7.0 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 7.0 и позже.
-