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

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

Разработчик

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

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

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

NSURLSession

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


Соответствует


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


Swift

import Foundation

Objective C

@import Foundation;

Доступность


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

NSURLSession класс и связанные классы обеспечивают API для загрузки содержания через HTTP. Этот API обеспечивает богатый набор методов делегата для поддержки аутентификации и предоставляет Вашему приложению возможность выполнить фоновые загрузки, когда Ваше приложение не работает или в iOS, в то время как приостановлено Ваше приложение.

С NSURLSession API, Ваше приложение создает серию сеансов, каждый из которых координирует группу связанных задач передачи данных. Например, если Вы пишете веб-браузер, Ваше приложение могло бы создать один сеанс на вкладку или окно. В каждом сеансе Ваше приложение добавляет серию задач, каждая из которых представляет запрос на определенный URL (и на любой последующий URLs, если исходный URL возвратил перенаправление HTTP).

Поведение сеанса определяется объектом конфигурации, используемым для создания его. Поскольку существует три типа объектов конфигурации, существует так же три типа сеансов: сеансы по умолчанию, ведущие себя во многом как NSURLConnection, эфемерные сеансы, ничего не кэширующие к диску и сеансам загрузки, хранящим результаты в файле и продолжающим передавать данные, даже когда Ваше приложение приостановлено, выходят, или катастрофические отказы.

В тех сеансах можно запланировать три типа задач: задачи данных для получения данных к памяти, загрузите задачи для загрузки файла к диску и задач загрузки для загрузки файла от диска и получения ответа как данные в памяти.

Как самый сетевой APIs, NSURLSession API является очень асинхронным. Это возвращает данные одним из двух способов, в зависимости от методов, которые Вы вызываете:

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

  • Вызывающими методами для Вашего пользовательского делегата, поскольку данные получены.

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

NSURLSession API обеспечивает состояние и свойства прогресса, в дополнение к поставке этой информации делегатам. Это поддерживает отмену, перезапуск или возобновление и приостановку задач, и это предоставляет возможность для возобновления приостановленных, отмененных, или отказавших загрузок, где они кончили.

Иерархия классов сеанса URL

NSURLSession API состоит из следующих классов (вложенный для показа отношений подкласса):

  • NSURLSession— Объект сеанса.

  • NSURLSessionConfiguration— Объект конфигурации, используемый при инициализации сеанса.

  • NSURLSessionTask— Базовый класс для задач в сеансе.

    • NSURLSessionDataTask— Задача для получения содержания URL как NSData объект

      • NSURLSessionUploadTask— Задача для загрузки файла, затем получая содержание URL как NSData объект

    • NSURLSessionDownloadTask— Задача для получения содержания URL как временный файл на диске

Кроме того, NSURLSession API обеспечивает четыре протокола, определяющие методы делегата, которые Ваше приложение может реализовать для обеспечения большего количества тонкозернистого управления поведением задачи и сеансом.

  • NSURLSessionDelegate— Определяет методы делегата обработать события сеансового уровня

  • NSURLSessionTaskDelegate— Определяет методы делегата обработать события уровня задачи, характерные для всех типов задачи

  • NSURLSessionDataDelegate— Определяет методы делегата обработать события уровня задачи, определенные для задач загрузки и данных

  • NSURLSessionDownloadDelegate— Определяет методы делегата обработать события уровня задачи, определенные для загрузки задач

Наконец, NSURLSession API использует много классов, также обычно использующихся с другим APIs такой как NSURLConnection и NSURLDownload. Некоторые из этих совместно используемых классов включают:

  • NSURL— Объект, содержащий URL.

  • NSURLRequest— Инкапсулирует метаданные, связанные с URL-запросом, включая URL, метод запроса, и т.д.

  • NSURLResponse— Инкапсулирует метаданные, связанные с ответом сервера на запрос, такой как содержание тип MIME и длина.

    • NSHTTPURLResponse— Добавляют дополнительные метаданные, определенные для Запросов HTTP, таких как заголовки ответа.

  • NSCachedURLResponse— Инкапсулирует NSURLResponse объект, вместе с фактическими данными организации ответа сервера, для кэширования целей.

Поведение NSCopying

Сеанс и объекты задачи соответствуют NSCopying протокол следующим образом:

  • Когда Ваши копии приложений сеанс или объект задачи, Вы возвращаете тот же объект.

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

  • Создает сеанс с указанной конфигурацией сеанса.

    Объявление

    Swift

    init(configuration configuration: NSURLSessionConfiguration) -> NSURLSession

    Objective C

    + (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration

    Параметры

    configuration

    Объект конфигурации, указывающий определенные способы поведения, такие как кэширующиеся политики, тайм-ауты, прокси, конвейерная обработка, версии TLS для поддержки, политики cookie, учетное хранение, и т.д. Для получения дополнительной информации посмотрите Ссылку класса NSURLSessionConfiguration.

    Обсуждение

    Если этот метод используется, сеанс создает сериал NSOperationQueue объект, на котором можно выполнить все вызовы метода делегата и вызовы обработчика завершения.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает сеанс с указанной конфигурацией сеанса, делегатом и очередью работы.

    Объявление

    Swift

    init(configuration configuration: NSURLSessionConfiguration?, delegate delegate: NSURLSessionDelegate?, delegateQueue queue: NSOperationQueue?) -> NSURLSession

    Objective C

    + (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration delegate:(id<NSURLSessionDelegate>)delegate delegateQueue:(NSOperationQueue *)queue

    Параметры

    configuration

    Объект конфигурации, указывающий определенные способы поведения, такие как кэширующиеся политики, тайм-ауты, прокси, конвейерная обработка, версии TLS для поддержки, политики cookie и учетное хранение.

    Поскольку сеанс копирует объект конфигурации, безопасно изменить объект конфигурации и использовать его для построения дополнительных сеансов.

    Для получения дополнительной информации посмотрите Ссылку класса NSURLSessionConfiguration.

    delegate

    Объект делегата сеанса, обрабатывающий запросы для аутентификации и других связанных с сеансом событий.

    Этот объект делегата ответственен за обработку запросов аутентификации, за принятие кэширующихся решений, и для обработки других связанных с сеансом событий. Если nil, класс использует предоставленного системой делегата и должен использоваться только с методами, берущими обработчики завершения.

    queue

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Возвращает совместно используемый одноэлементный объект сеанса.

    Объявление

    Swift

    class func sharedSession() -> NSURLSession

    Objective C

    + (NSURLSession *)sharedSession

    Обсуждение

    Совместно используемый сеанс использует в настоящее время глобальная переменная набора NSURLCache, NSHTTPCookieStorage, и NSURLCredentialStorage объекты и основываются на конфигурации по умолчанию.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • configuration Свойство

    Копия конфигурации возражает для этого сеанса. (только для чтения)

    Объявление

    Swift

    @NSCopying var configuration: NSURLSessionConfiguration { get }

    Objective C

    @property(readonly, copy) NSURLSessionConfiguration *configuration

    Обсуждение

    Изменение непостоянных значений в объекте конфигурации не имеет никакого эффекта на текущий сеанс, но можно создать новый сеанс с измененным объектом конфигурации.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • delegate Свойство

    Когда этот объект создавался, делегат присвоился. (только для чтения)

    Объявление

    Swift

    var delegate: NSURLSessionDelegate? { get }

    Objective C

    @property(readonly, retain) id< NSURLSessionDelegate > delegate

    Обсуждение

    Этот объект делегата ответственен за обработку запросов аутентификации, за принятие кэширующихся решений, и для обработки других связанных с сеансом событий.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • delegateQueue Свойство

    Когда этот объект создавался, очередь работы обеспечила. (только для чтения)

    Объявление

    Swift

    var delegateQueue: NSOperationQueue { get }

    Objective C

    @property(readonly, retain) NSOperationQueue *delegateQueue

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • sessionDescription Свойство

    Определенная с помощью приложения дескриптивная метка для сеанса.

    Объявление

    Swift

    var sessionDescription: String?

    Objective C

    @property(copy) NSString *sessionDescription

    Обсуждение

    Это свойство содержит человекочитаемые строки, которые можно вывести на экран пользователю как часть пользовательского интерфейса приложения. Это значение может быть nil.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает HTTP GET запрос на указанный URL.

    Объявление

    Swift

    func dataTaskWithURL(_ url: NSURL) -> NSURLSessionDataTask

    Objective C

    - (NSURLSessionDataTask *)dataTaskWithURL:(NSURL *)url

    Параметры

    url

    http или https URL, который будет получен.

    Возвращаемое значение

    Новая задача данных сеанса.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает HTTP GET запрос на указанный URL, затем вызывает обработчик после завершения.

    Объявление

    Swift

    func dataTaskWithURL(_ url: NSURL, completionHandler completionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTask

    Objective C

    - (NSURLSessionDataTask *)dataTaskWithURL:(NSURL *)url completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler

    Параметры

    url

    http или https URL, который будет получен.

    completionHandler

    Обработчик завершения для вызова, когда запрос загрузки завершен. Если отправлено в сеанс создается путем вызова sessionWithConfiguration:delegate:delegateQueue: с не -nil значение для delegateQueue параметр, этот обработчик выполняется на той очереди делегата.

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

    Возвращаемое значение

    Новая задача данных сеанса.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает Запрос HTTP на основе указанного объекта URL-запроса.

    Объявление

    Swift

    func dataTaskWithRequest(_ request: NSURLRequest) -> NSURLSessionDataTask

    Objective C

    - (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request

    Параметры

    request

    Объект, предоставляющий специфичную для запроса информацию, такую как URL, политика кэша, тип запроса, и данные организации или поток организации.

    Возвращаемое значение

    Новая задача данных сеанса.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает Запрос HTTP для указанного объекта URL-запроса и вызывает обработчик после завершения.

    Объявление

    Swift

    func dataTaskWithRequest(_ request: NSURLRequest, completionHandler completionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTask

    Objective C

    - (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, данные организации или поток организации, и т.д.

    completionHandler

    Обработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.

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

    Возвращаемое значение

    Новая задача данных сеанса.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает задачу загрузки для указанного URL и сохраняет результаты к файлу.

    Объявление

    Swift

    func downloadTaskWithURL(_ url: NSURL) -> NSURLSessionDownloadTask

    Objective C

    - (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)url

    Параметры

    url

    NSURL объект, обеспечивающий URL для загрузки.

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает задачу загрузки для указанного URL, сохраняет результаты к файлу и вызывает обработчик после завершения.

    Объявление

    Swift

    func downloadTaskWithURL(_ url: NSURL, completionHandler completionHandler: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTask

    Objective C

    - (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)url completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler

    Параметры

    url

    NSURL объект, обеспечивающий URL для загрузки.

    completionHandler

    Обработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.

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

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает задачу загрузки для указанного URL-запроса и сохраняет результаты к файлу.

    Объявление

    Swift

    func downloadTaskWithRequest(_ request: NSURLRequest) -> NSURLSessionDownloadTask

    Objective C

    - (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, данные организации или поток организации, и т.д.

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает задачу загрузки для указанного URL-запроса, сохраняет результаты к файлу и вызывает обработчик после завершения.

    Объявление

    Swift

    func downloadTaskWithRequest(_ request: NSURLRequest, completionHandler completionHandler: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTask

    Objective C

    - (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, данные организации или поток организации, и т.д.

    completionHandler

    Обработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.

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

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает задачу загрузки возобновить ранее отмененную или неработающую загрузку.

    Объявление

    Swift

    func downloadTaskWithResumeData(_ resumeData: NSData) -> NSURLSessionDownloadTask

    Objective C

    - (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData

    Параметры

    resumeData

    Объект данных, предоставляющий данные, необходимые для возобновления загрузки.

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    Ваше приложение может получить a resumeData объект двумя способами:

    • Если Ваше приложение отменяет существующую передачу путем вызова cancelByProducingResumeData:, объект сеанса передает a resumeData возразите против обработчика завершения, что Вы обеспечили в том вызове.

    • Если передача перестала работать, объект сеанса обеспечивает NSError возразите или против Вашего делегата или против обработчика завершения задачи. В том объекте, NSURLSessionDownloadTaskResumeData ключ userInfo словарь содержит a resumeData объект.

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает задачу загрузки возобновить ранее отмененную или неработающую загрузку и вызывает обработчик после завершения.

    Объявление

    Swift

    func downloadTaskWithResumeData(_ resumeData: NSData, completionHandler completionHandler: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTask

    Objective C

    - (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler

    Параметры

    resumeData

    Объект данных, предоставляющий данные, необходимые для возобновления загрузки.

    completionHandler

    Обработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.

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

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    Ваше приложение может полученный a resumeData объект двумя способами:

    • Если Ваше приложение отменяет передачу явно путем вызова cancelByProducingResumeData:, объект сеанса передает a resumeData возразите против обработчика завершения, что Вы обеспечили в том вызове.

    • Если передача перестала работать, объект сеанса обеспечивает NSError возразите или против его делегата или против обработчика завершения задачи. В том объекте, NSURLSessionDownloadTaskResumeData ключ userInfo словарь содержит a resumeData объект.

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает Запрос HTTP для указанного объекта URL-запроса и загружает объект предоставленных данных.

    Объявление

    Swift

    func uploadTaskWithRequest(_ request: NSURLRequest, fromData bodyData: NSData?) -> NSURLSessionUploadTask

    Objective C

    - (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(NSData *)bodyData

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.

    bodyData

    Данные организации для запроса.

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает Запрос HTTP для указанного объекта URL-запроса, загружает объект предоставленных данных и вызывает обработчик после завершения.

    Объявление

    Swift

    func uploadTaskWithRequest(_ request: NSURLRequest, fromData bodyData: NSData?, completionHandler completionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionUploadTask

    Objective C

    - (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(NSData *)bodyData completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.

    bodyData

    Данные организации для запроса.

    completionHandler

    Обработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.

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

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    В отличие от этого uploadTaskWithRequest:fromData:, этот метод возвращает организацию ответа после того, как это было получено полностью и не требует, чтобы Вы записали пользовательскому делегату для получения организации ответа.

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает Запрос HTTP для загрузки указанного файла URL.

    Объявление

    Swift

    func uploadTaskWithRequest(_ request: NSURLRequest, fromFile fileURL: NSURL) -> NSURLSessionUploadTask

    Objective C

    - (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.

    fileURL

    URL файла для загрузки.

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает Запрос HTTP для загрузки указанного файла URL, затем вызывает обработчик после завершения.

    Объявление

    Swift

    func uploadTaskWithRequest(_ request: NSURLRequest, fromFile fileURL: NSURL, completionHandler completionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionUploadTask

    Objective C

    - (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.

    fileURL

    URL файла для загрузки.

    completionHandler

    Обработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата. Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть nil, потому что нет никакого другого способа получить данные ответа.

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    В отличие от этого uploadTaskWithRequest:fromFile:, этот метод возвращает организацию ответа после того, как это было получено полностью и не требует, чтобы Вы записали пользовательскому делегату для получения организации ответа.

    После создания задачи необходимо запустить ее путем вызова resume метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Создает Запрос HTTP для загрузки данных на основе указанного URL-запроса.

    Объявление

    Swift

    func uploadTaskWithStreamedRequest(_ request: NSURLRequest) -> NSURLSessionUploadTask

    Objective C

    - (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request

    Параметры

    request

    NSURLRequest объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы, и NSURLSession вызывает его делегата URLSession:task:needNewBodyStream: метод для предоставления данных организации.

    Возвращаемое значение

    Новый сеанс загружает задачу.

    Обсуждение

    После создания задачи необходимо запустить ее путем вызова resume метод. У делегата задачи загрузки должен быть a URLSession:task:needNewBodyStream: метод, предоставляющий данные организации загрузке.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Лишает законной силы объект, позволяя любым выдающимся задачам закончиться.

    Объявление

    Swift

    func finishTasksAndInvalidate()

    Objective C

    - (void)finishTasksAndInvalidate

    Обсуждение

    Этот метод сразу возвращается, не ожидая задач закончиться. Как только сеанс лишен законной силы, новые задачи не могут быть созданы в сеансе, но существующие задачи продолжаются до завершения. После последних концов задачи и сеанса выполняет последний вызов делегата, ссылки на делегата и объекты обратного вызова повреждаются. Объекты сеанса не могут быть снова использованы.

    Для отмены всех выдающихся задач вызвать invalidateAndCancel вместо этого.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    func flushWithCompletionHandler(_ completionHandler: () -> Void)

    Objective C

    - (void)flushWithCompletionHandler:(void (^)(void))completionHandler

    Параметры

    completionHandler

    Обработчик завершения для вызова, когда работа сброса завершена. Этот обработчик выполняется на очереди делегата.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Асинхронно вызывает обратный вызов завершения со всеми выдающимися данными, загрузкой и задачами загрузки в сеансе.

    Объявление

    Swift

    func getTasksWithCompletionHandler(_ completionHandler: ([AnyObject]!, [AnyObject]!, [AnyObject]!) -> Void)

    Objective C

    - (void)getTasksWithCompletionHandler:(void (^)(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks))completionHandler

    Параметры

    completionHandler

    Обработчик завершения для вызова со списком в настоящее время выдающихся задач. Этот обработчик выполняется на очереди делегата.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Отмены все выдающиеся задачи и затем лишают законной силы объект сеанса.

    Объявление

    Swift

    func invalidateAndCancel()

    Objective C

    - (void)invalidateAndCancel

    Обсуждение

    После того, как лишенный законной силы, ссылки на делегата и объекты обратного вызова повреждаются. Объекты сеанса не могут быть снова использованы.

    Чтобы позволить выдающимся задачам работать до завершения, вызвать finishTasksAndInvalidate вместо этого.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Сбрасывает сеанс асинхронно.

    Объявление

    Swift

    func resetWithCompletionHandler(_ completionHandler: () -> Void)

    Objective C

    - (void)resetWithCompletionHandler:(void (^)(void))completionHandler

    Параметры

    completionHandler

    Обработчик завершения для вызова, когда работа сброса завершена. Этот обработчик выполняется на очереди делегата.

    Обсуждение

    Этот метод порожняя тара, все cookie, кэши и учетные хранилища, удаляют дисковые файлы, сбрасывает происходящие загрузки к диску и гарантирует, чтобы будущие запросы произошли на новом сокете.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Ключи, используемые в сочетании с NSError объекты, возвращенные NSURLSession API.

    Объявление

    Swift

    let NSURLSessionDownloadTaskResumeData: String let NSURLErrorBackgroundTaskCancelledReasonKey: String

    Objective C

    NSString *const NSURLSessionDownloadTaskResumeData; NSString * const NSURLErrorBackgroundTaskCancelledReasonKey;

    Константы

    • NSURLSessionDownloadTaskResumeData

      Ключ в ошибочном словаре, предоставляющем данные резюме.

      Когда ошибка передачи происходит, объект делегата или обработчик завершения добираются NSError объект. Если передача resumable, тот ошибочный объект userInfo словарь содержит значение для этого ключа. Для возобновления передачи приложение может передать то значение downloadTaskWithResumeData: или downloadTaskWithResumeData:completionHandler: метод.

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

    • NSURLErrorBackgroundTaskCancelledReasonKey

      NSNumber значение, указывающее, почему была отменена фоновая задача. Для списка возможных значений посмотрите NSURLSession-специфичные ключи NSError userInfo Словаря.

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

  • Константы, указывающие, почему была отменена фоновая задача.

    Объявление

    Swift

    var NSURLErrorCancelledReasonUserForceQuitApplication: Int { get } var NSURLErrorCancelledReasonBackgroundUpdatesDisabled: Int { get }

    Objective C

    enum { NSURLErrorCancelledReasonUserForceQuitApplication = 0, NSURLErrorCancelledReasonBackgroundUpdatesDisabled = 1, };

    Константы

    • NSURLErrorCancelledReasonUserForceQuitApplication

      Работа была отменена, потому что пользователь вынудил приложение выйти.

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

    • NSURLErrorCancelledReasonBackgroundUpdatesDisabled

      Работа была отменена, потому что отключены фоновые обновления.

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

    Обсуждение

    Эти значения используются в сочетании с NSURLErrorBackgroundTaskCancelledReasonKey ключ NSError объект userInfo словарь.

  • Константы для определения текущего состояния задачи.

    Объявление

    Swift

    enum NSURLSessionTaskState : Int { case Running case Suspended case Canceling case Completed }

    Objective C

    enum NSURLSessionTaskState { NSURLSessionTaskStateRunning = 0, NSURLSessionTaskStateSuspended = 1, NSURLSessionTaskStateCanceling = 2, NSURLSessionTaskStateCompleted = 3 }; typedef NSInteger NSURLSessionTaskState;

    Константы

    • Running

      NSURLSessionTaskStateRunning

      Задача в настоящее время обслуживается сеансом. Задача в этом состоянии подвергается запросу и тайм-аутам ресурса, указанным в объекте конфигурации сеанса.

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

    • Suspended

      NSURLSessionTaskStateSuspended

      Задача была приостановлена приложением. Никакая последующая обработка не имеет место, пока это не возобновляется. Задача в этом состоянии не подвергается тайм-аутам.

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

    • Canceling

      NSURLSessionTaskStateCanceling

      Задача получила a cancel сообщение. Делегат может или мог не получить a URLSession:task:didCompleteWithError: сообщение все же. Задача в этом состоянии не подвергается тайм-аутам.

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

    • Completed

      NSURLSessionTaskStateCompleted

      Задача завершилась (не будучи отмененным), и делегат задачи не получает дальнейших обратных вызовов. Если задача завершилась успешно, задача error свойство nil. Иначе, это обеспечивает ошибочный объект, говорящий то, что пошло не так, как надо. Задача в этом состоянии не подвергается тайм-аутам.

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    enum NSURLSessionAuthChallengeDisposition : Int { case UseCredential case PerformDefaultHandling case CancelAuthenticationChallenge case RejectProtectionSpace }

    Objective C

    enum NSURLSessionAuthChallengeDisposition { NSURLSessionAuthChallengeUseCredential = 0, NSURLSessionAuthChallengePerformDefaultHandling = 1, NSURLSessionAuthChallengeCancelAuthenticationChallenge = 2, NSURLSessionAuthChallengeRejectProtectionSpace = 3, }; typedef NSInteger NSURLSessionAuthChallengeDisposition;

    Константы

    • 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 и позже.

  • Постоянное обозначение неизвестного размера передачи.

    Объявление

    Swift

    let NSURLSessionTransferSizeUnknown: Int64

    Objective C

    const int64_t NSURLSessionTransferSizeUnknown ; /* -1LL */

    Константы

    • NSURLSessionTransferSizeUnknown

      Общий размер передачи не может быть определен.

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