Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы основы ссылка на протокол NSURLSessionTaskDelegate

Опции
Развертывание Target:

На этой странице
Язык:

NSURLSessionTaskDelegate

Наследование


Не применимый

Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в iOS 7.0 и позже.

NSURLSessionTaskDelegate протокол определяет специфичные для задачи методы делегата, которые необходимо реализовать при работе с любым типом NSURLSession задача.

Если Вы используете задачи загрузки, также реализуете методы в NSURLSessionDownloadDelegate протокол.

Если Вы используете данные или загружаете задачи, также реализуете методы в NSURLSessionDataDelegate протокол.

  • Говорит делегату, что задача закончила передавать данные.

    Объявление

    Swift

    optional func URLSession(_ session: NSURLSession, task task: NSURLSessionTask, didCompleteWithError error: NSError?)

    Objective C

    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error

    Параметры

    session

    Сеанс, содержащий задачу, запрос которой закончил передавать данные.

    task

    Задача, запрос которой закончил передавать данные.

    error

    Если ошибка произошла, ошибочный объект указание, как передача перестала работать, иначе NULL.

    Обсуждение

    Об ошибках сервера не сообщают через error параметр. Единственные ошибки Ваш делегат получают через error параметр является ошибками клиентской стороны, такими как неспособность для разрешения имени хоста или подключения к узлу.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 7.0 и позже.

  • Учетные данные запросов от делегата в ответ на запрос аутентификации от удаленного сервера.

    Объявление

    Swift

    optional func URLSession(_ session: NSURLSession, task task: NSURLSessionTask, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential!) -> Void)

    Objective C

    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler

    Параметры

    session

    Сеанс, содержащий задачу, запрос которой требует аутентификации.

    task

    Задача, запрос которой требует аутентификации.

    challenge

    Объект, содержащий запрос на аутентификацию.

    completionHandler

    Обработчик, который должен вызвать Ваш метод делегата. Его параметры:

    • disposition— Одна из нескольких констант, описывающая, как должна быть обработана проблема.

    • credential— Учетные данные, которые должны использоваться для аутентификации, если расположение NSURLSessionAuthChallengeUseCredential; иначе, NULL.

    Обсуждение

    Этот метод обрабатывает запросы аутентификации уровня задачи. NSURLSessionDelegate протокол также обеспечивает метод делегата аутентификации сеансового уровня. Вызванный метод зависит от типа запроса аутентификации:

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 7.0 и позже.

  • Периодически сообщает делегату прогресса передающего содержания организации к серверу.

    Объявление

    Swift

    optional func URLSession(_ session: NSURLSession, task task: NSURLSessionTask, didSendBodyData bytesSent: Int64, totalBytesSent totalBytesSent: Int64, totalBytesExpectedToSend totalBytesExpectedToSend: Int64)

    Objective C

    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend

    Параметры

    session

    Сеанс, содержащий задачу данных.

    task

    Задача данных.

    bytesSent

    Число байтов, отправленных с прошлого раза этот метод делегата, вызвали.

    totalBytesSent

    Общее количество байтов отправило до сих пор.

    totalBytesExpectedToSend

    Ожидаемая длина данных организации. Загрузочная система URL может определить длину данных загрузки тремя способами:

    • От длины NSData объект обеспечил как организация загрузки.

    • От длины файла на диске, предоставленном как организация загрузки задачи загрузки (не задача загрузки).

    • От Content-Length в объекте запроса, если Вы явно устанавливаете его.

    Иначе, значение NSURLSessionTransferSizeUnknown (-1) если Вы обеспечили поток или объект данных организации или нуль (0) если Вы не сделали.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 7.0 и позже.

  • Говорит делегату, когда задача требует, чтобы новый поток организации запроса отправил к удаленному серверу.

    Объявление

    Swift

    optional func URLSession(_ session: NSURLSession, task task: NSURLSessionTask, needNewBodyStream completionHandler: (NSInputStream!) -> Void)

    Objective C

    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task needNewBodyStream:(void (^)(NSInputStream *bodyStream))completionHandler

    Параметры

    session

    Сеанс, содержащий задачу, которой нужен новый поток организации.

    task

    Задача, которой нужен новый поток организации.

    completionHandler

    Обработчик завершения, который Ваш метод делегата должен вызвать с новым потоком организации.

    Обсуждение

    Этот метод делегата вызывают при двух обстоятельствах:

    • Обеспечить начальный поток организации запроса, если задача создавалась с uploadTaskWithStreamedRequest:

    • Для обеспечения замены запрашивают поток организации, если задача должна снова послать запрос, имеющий поток организации из-за запроса аутентификации или другой восстанавливаемой ошибки сервера.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 7.0 и позже.

  • Говорит делегату, что удаленный сервер запросил перенаправление HTTP.

    Объявление

    Swift

    optional func URLSession(_ session: NSURLSession, task task: NSURLSessionTask, willPerformHTTPRedirection response: NSHTTPURLResponse, newRequest request: NSURLRequest, completionHandler completionHandler: (NSURLRequest!) -> Void)

    Objective C

    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task willPerformHTTPRedirection:(NSHTTPURLResponse *)response newRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLRequest *))completionHandler

    Параметры

    session

    Сеанс, содержащий задачу, запрос которой привел к перенаправлению.

    task

    Задача, запрос которой привел к перенаправлению.

    response

    Объект, содержащий ответ сервера на исходный запрос.

    request

    Объект URL-запроса заполнен с новым расположением.

    completionHandler

    Блок, что Ваш обработчик должен вызвать с любым значение request параметр, измененный объект URL-запроса, или NULL отказаться от перенаправления и возвратить организацию ответа перенаправления.

    Обсуждение

    Этот метод вызывают только для задач в и эфемерных сеансах по умолчанию. Задачи в фоновых сеансах автоматически следуют за перенаправлениями.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 7.0 и позже.