NSURLSession
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
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.9 и позже.
-
Создает сеанс с указанной конфигурацией сеанса.
Объявление
Swift
init(configuration
configuration
: NSURLSessionConfiguration) -> NSURLSessionObjective C
+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)
configuration
Параметры
configuration
Объект конфигурации, указывающий определенные способы поведения, такие как кэширующиеся политики, тайм-ауты, прокси, конвейерная обработка, версии TLS для поддержки, политики cookie, учетное хранение, и т.д. Для получения дополнительной информации посмотрите Ссылку класса NSURLSessionConfiguration.
Обсуждение
Если этот метод используется, сеанс создает сериал
NSOperationQueue
объект, на котором можно выполнить все вызовы метода делегата и вызовы обработчика завершения.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает сеанс с указанной конфигурацией сеанса, делегатом и очередью работы.
Объявление
Swift
init(configuration
configuration
: NSURLSessionConfiguration?, delegatedelegate
: NSURLSessionDelegate?, delegateQueuequeue
: NSOperationQueue?) -> NSURLSessionObjective 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
Доступность
Доступный в OS X v10.9 и позже.
-
Возвращает совместно используемый одноэлементный объект сеанса.
Объявление
Swift
class func sharedSession() -> NSURLSession
Objective C
+ (NSURLSession *)sharedSession
Обсуждение
Совместно используемый сеанс использует в настоящее время глобальная переменная набора
NSURLCache
,NSHTTPCookieStorage
, иNSURLCredentialStorage
объекты и основываются на конфигурации по умолчанию.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
конфигурация конфигурация
СвойствоКопия конфигурации возражает для этого сеанса. (только для чтения)
Объявление
Swift
@NSCopying var configuration: NSURLSessionConfiguration { get }
Objective C
@property(readonly, copy) NSURLSessionConfiguration *configuration
Обсуждение
Изменение непостоянных значений в объекте конфигурации не имеет никакого эффекта на текущий сеанс, но можно создать новый сеанс с измененным объектом конфигурации.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Когда этот объект создавался, делегат присвоился. (только для чтения)
Объявление
Swift
var delegate: NSURLSessionDelegate? { get }
Objective C
@property(readonly, retain) id< NSURLSessionDelegate > delegate
Обсуждение
Этот объект делегата ответственен за обработку запросов аутентификации, за принятие кэширующихся решений, и для обработки других связанных с сеансом событий.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
delegateQueue delegateQueue
СвойствоКогда этот объект создавался, очередь работы обеспечила. (только для чтения)
Объявление
Swift
var delegateQueue: NSOperationQueue { get }
Objective C
@property(readonly, retain) NSOperationQueue *delegateQueue
Обсуждение
Все вызовы метода делегата и обработчики завершения, связанные с сеансом, выполняются на этой очереди.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
sessionDescription sessionDescription
СвойствоОпределенная с помощью приложения дескриптивная метка для сеанса.
Объявление
Swift
var sessionDescription: String?
Objective C
@property(copy) NSString *sessionDescription
Обсуждение
Это свойство содержит человекочитаемые строки, которые можно вывести на экран пользователю как часть пользовательского интерфейса приложения. Это значение может быть
nil
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает HTTP
GET
запрос на указанный URL.Объявление
Swift
func dataTaskWithURL(_
url
: NSURL) -> NSURLSessionDataTaskObjective C
- (NSURLSessionDataTask *)dataTaskWithURL:(NSURL *)
url
Параметры
url
http
илиhttps
URL, который будет получен.Возвращаемое значение
Новая задача данных сеанса.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает HTTP
GET
запрос на указанный URL, затем вызывает обработчик после завершения.Объявление
Swift
func dataTaskWithURL(_
url
: NSURL, completionHandlercompletionHandler
: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTaskObjective 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
, потому что нет никакого другого способа получить данные ответа.Возвращаемое значение
Новая задача данных сеанса.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает Запрос HTTP на основе указанного объекта URL-запроса.
Объявление
Swift
func dataTaskWithRequest(_
request
: NSURLRequest) -> NSURLSessionDataTaskObjective C
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)
request
Параметры
request
Объект, предоставляющий специфичную для запроса информацию, такую как URL, политика кэша, тип запроса, и данные организации или поток организации.
Возвращаемое значение
Новая задача данных сеанса.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает Запрос HTTP для указанного объекта URL-запроса и вызывает обработчик после завершения.
Объявление
Swift
func dataTaskWithRequest(_
request
: NSURLRequest, completionHandlercompletionHandler
: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTaskObjective 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
Доступность
Доступный в OS X v10.9 и позже.
-
Создает задачу загрузки для указанного URL и сохраняет результаты к файлу.
Объявление
Swift
func downloadTaskWithURL(_
url
: NSURL) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)
url
Параметры
url
NSURL
объект, обеспечивающий URL для загрузки.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает задачу загрузки для указанного URL, сохраняет результаты к файлу и вызывает обработчик после завершения.
Объявление
Swift
func downloadTaskWithURL(_
url
: NSURL, completionHandlercompletionHandler
: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTaskObjective 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
Доступность
Доступный в OS X v10.9 и позже.
-
Создает задачу загрузки для указанного URL-запроса и сохраняет результаты к файлу.
Объявление
Swift
func downloadTaskWithRequest(_
request
: NSURLRequest) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)
request
Параметры
request
NSURLRequest
объект, обеспечивающий URL, политику кэша, тип запроса, данные организации или поток организации, и т.д.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает задачу загрузки для указанного URL-запроса, сохраняет результаты к файлу и вызывает обработчик после завершения.
Объявление
Swift
func downloadTaskWithRequest(_
request
: NSURLRequest, completionHandlercompletionHandler
: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTaskObjective 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
Доступность
Доступный в OS X v10.9 и позже.
-
Создает задачу загрузки возобновить ранее отмененную или неработающую загрузку.
Объявление
Swift
func downloadTaskWithResumeData(_
resumeData
: NSData) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)
resumeData
Параметры
resumeData
Объект данных, предоставляющий данные, необходимые для возобновления загрузки.
Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
Ваше приложение может получить a
resumeData
объект двумя способами:Если Ваше приложение отменяет существующую передачу путем вызова
cancelByProducingResumeData:
, объект сеанса передает aresumeData
возразите против обработчика завершения, что Вы обеспечили в том вызове.Если передача перестала работать, объект сеанса обеспечивает
NSError
возразите или против Вашего делегата или против обработчика завершения задачи. В том объекте,NSURLSessionDownloadTaskResumeData
ключuserInfo
словарь содержит aresumeData
объект.
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает задачу загрузки возобновить ранее отмененную или неработающую загрузку и вызывает обработчик после завершения.
Объявление
Swift
func downloadTaskWithResumeData(_
resumeData
: NSData, completionHandlercompletionHandler
: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)
resumeData
completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler
Параметры
resumeData
Объект данных, предоставляющий данные, необходимые для возобновления загрузки.
completionHandler
Обработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.
Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть
nil
, потому что нет никакого другого способа получить данные ответа.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
Ваше приложение может полученный a
resumeData
объект двумя способами:Если Ваше приложение отменяет передачу явно путем вызова
cancelByProducingResumeData:
, объект сеанса передает aresumeData
возразите против обработчика завершения, что Вы обеспечили в том вызове.Если передача перестала работать, объект сеанса обеспечивает
NSError
возразите или против его делегата или против обработчика завершения задачи. В том объекте,NSURLSessionDownloadTaskResumeData
ключuserInfo
словарь содержит aresumeData
объект.
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Создает Запрос HTTP для указанного объекта URL-запроса и загружает объект предоставленных данных.
Объявление
Swift
func uploadTaskWithRequest(_
request
: NSURLRequest, fromDatabodyData
: NSData?) -> NSURLSessionUploadTaskObjective C
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)
request
fromData:(NSData *)bodyData
Параметры
request
NSURLRequest
объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.bodyData
Данные организации для запроса.
Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
uploadTaskWithRequest (_: fromData:completionHandler:) - uploadTaskWithRequest:fromData:completionHandler:
Создает Запрос HTTP для указанного объекта URL-запроса, загружает объект предоставленных данных и вызывает обработчик после завершения.
Объявление
Swift
func uploadTaskWithRequest(_
request
: NSURLRequest, fromDatabodyData
: NSData?, completionHandlercompletionHandler
: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionUploadTaskObjective 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
Доступность
Доступный в OS X v10.9 и позже.
-
Создает Запрос HTTP для загрузки указанного файла URL.
Объявление
Swift
func uploadTaskWithRequest(_
request
: NSURLRequest, fromFilefileURL
: NSURL) -> NSURLSessionUploadTaskObjective C
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)
request
fromFile:(NSURL *)fileURL
Параметры
request
NSURLRequest
объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.fileURL
URL файла для загрузки.
Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resume
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
uploadTaskWithRequest (_: fromFile:completionHandler:) - uploadTaskWithRequest:fromFile:completionHandler:
Создает Запрос HTTP для загрузки указанного файла URL, затем вызывает обработчик после завершения.
Объявление
Swift
func uploadTaskWithRequest(_
request
: NSURLRequest, fromFilefileURL
: NSURL, completionHandlercompletionHandler
: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionUploadTaskObjective 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
Доступность
Доступный в OS X v10.9 и позже.
-
Создает Запрос HTTP для загрузки данных на основе указанного URL-запроса.
Объявление
Swift
func uploadTaskWithStreamedRequest(_
request
: NSURLRequest) -> NSURLSessionUploadTaskObjective C
- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)
request
Параметры
request
NSURLRequest
объект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы, иNSURLSession
вызывает его делегатаURLSession:task:needNewBodyStream:
метод для предоставления данных организации.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resume
метод. У делегата задачи загрузки должен быть aURLSession:task:needNewBodyStream:
метод, предоставляющий данные организации загрузке.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Лишает законной силы объект, позволяя любым выдающимся задачам закончиться.
Объявление
Swift
func finishTasksAndInvalidate()
Objective C
- (void)finishTasksAndInvalidate
Обсуждение
Этот метод сразу возвращается, не ожидая задач закончиться. Как только сеанс лишен законной силы, новые задачи не могут быть созданы в сеансе, но существующие задачи продолжаются до завершения. После последних концов задачи и сеанса выполняет последний вызов делегата, ссылки на делегата и объекты обратного вызова повреждаются. Объекты сеанса не могут быть снова использованы.
Для отмены всех выдающихся задач вызвать
invalidateAndCancel
вместо этого.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Гарантирует, чтобы будущие запросы произошли на новом сокете и что любые транзитные данные загрузки сбрасываются к диску.
Объявление
Swift
func flushWithCompletionHandler(_
completionHandler
: () -> Void)Objective C
- (void)flushWithCompletionHandler:(void (^)(void))
completionHandler
Параметры
completionHandler
Обработчик завершения для вызова, когда работа сброса завершена. Этот обработчик выполняется на очереди делегата.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Асинхронно вызывает обратный вызов завершения со всеми выдающимися данными, загрузкой и задачами загрузки в сеансе.
Объявление
Swift
func getTasksWithCompletionHandler(_
completionHandler
: ([AnyObject]!, [AnyObject]!, [AnyObject]!) -> Void)Параметры
completionHandler
Обработчик завершения для вызова со списком в настоящее время выдающихся задач. Этот обработчик выполняется на очереди делегата.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Отмены все выдающиеся задачи и затем лишают законной силы объект сеанса.
Объявление
Swift
func invalidateAndCancel()
Objective C
- (void)invalidateAndCancel
Обсуждение
После того, как лишенный законной силы, ссылки на делегата и объекты обратного вызова повреждаются. Объекты сеанса не могут быть снова использованы.
Чтобы позволить выдающимся задачам работать до завершения, вызвать
finishTasksAndInvalidate
вместо этого.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Сбрасывает сеанс асинхронно.
Объявление
Swift
func resetWithCompletionHandler(_
completionHandler
: () -> Void)Objective C
- (void)resetWithCompletionHandler:(void (^)(void))
completionHandler
Параметры
completionHandler
Обработчик завершения для вызова, когда работа сброса завершена. Этот обработчик выполняется на очереди делегата.
Обсуждение
Этот метод порожняя тара, все cookie, кэши и учетные хранилища, удаляют дисковые файлы, сбрасывает происходящие загрузки к диску и гарантирует, чтобы будущие запросы произошли на новом сокете.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Ключи, используемые в сочетании с
NSError
объекты, возвращенныеNSURLSession
API.Объявление
Swift
let NSURLSessionDownloadTaskResumeData: NSString! let NSURLErrorBackgroundTaskCancelledReasonKey: NSString!
Objective C
NSString *const NSURLSessionDownloadTaskResumeData; NSString * const NSURLErrorBackgroundTaskCancelledReasonKey;
Константы
-
NSURLSessionDownloadTaskResumeData
NSURLSessionDownloadTaskResumeData
Ключ в ошибочном словаре, предоставляющем данные резюме.
Когда ошибка передачи происходит, объект делегата или обработчик завершения добираются
NSError
объект. Если передача resumable, тот ошибочный объектuserInfo
словарь содержит значение для этого ключа. Для возобновления передачи приложение может передать то значениеdownloadTaskWithResumeData:
илиdownloadTaskWithResumeData:completionHandler:
метод.Доступный в OS X v10.9 и позже.
-
NSURLErrorBackgroundTaskCancelledReasonKey
NSURLErrorBackgroundTaskCancelledReasonKey
NSNumber
значение, указывающее, почему была отменена фоновая задача. Для списка возможных значений посмотрите NSURLSession-специфичные ключи NSError userInfo Словаря.Доступный в OS X v10.10 и позже.
-
-
Константы, указывающие, почему была отменена фоновая задача.
Объявление
Swift
var NSURLErrorCancelledReasonUserForceQuitApplication: Int { get } var NSURLErrorCancelledReasonBackgroundUpdatesDisabled: Int { get }
Objective C
enum { NSURLErrorCancelledReasonUserForceQuitApplication = 0, NSURLErrorCancelledReasonBackgroundUpdatesDisabled = 1, };
Константы
-
NSURLErrorCancelledReasonUserForceQuitApplication
NSURLErrorCancelledReasonUserForceQuitApplication
Работа была отменена, потому что пользователь вынудил приложение выйти.
Доступный в OS X v10.10 и позже.
-
NSURLErrorCancelledReasonBackgroundUpdatesDisabled
NSURLErrorCancelledReasonBackgroundUpdatesDisabled
Работа была отменена, потому что отключены фоновые обновления.
Доступный в OS X v10.10 и позже.
Обсуждение
Эти значения используются в сочетании с
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
Задача в настоящее время обслуживается сеансом. Задача в этом состоянии подвергается запросу и тайм-аутам ресурса, указанным в объекте конфигурации сеанса.
Доступный в OS X v10.9 и позже.
-
Suspended
NSURLSessionTaskStateSuspended
Задача была приостановлена приложением. Никакая последующая обработка не имеет место, пока это не возобновляется. Задача в этом состоянии не подвергается тайм-аутам.
Доступный в OS X v10.9 и позже.
-
Canceling
NSURLSessionTaskStateCanceling
Задача получила a
cancel
сообщение. Делегат может или мог не получить aURLSession:task:didCompleteWithError:
сообщение все же. Задача в этом состоянии не подвергается тайм-аутам.Доступный в OS X v10.9 и позже.
-
Completed
NSURLSessionTaskStateCompleted
Задача завершилась (не будучи отмененным), и делегат задачи не получает дальнейших обратных вызовов. Если задача завершилась успешно, задача
error
свойствоnil
. Иначе, это обеспечивает ошибочный объект, говорящий то, что пошло не так, как надо. Задача в этом состоянии не подвергается тайм-аутам.Доступный в OS X v10.9 и позже.
Оператор импорта
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
enum NSURLSessionAuthChallengeDisposition { NSURLSessionAuthChallengeUseCredential = 0, NSURLSessionAuthChallengePerformDefaultHandling = 1, NSURLSessionAuthChallengeCancelAuthenticationChallenge = 2, NSURLSessionAuthChallengeRejectProtectionSpace = 3, }; typedef NSInteger NSURLSessionAuthChallengeDisposition;
Константы
-
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 и позже.
-
-
Постоянное обозначение неизвестного размера передачи.
Объявление
Swift
let NSURLSessionTransferSizeUnknown: Int64
Objective C
const int64_t NSURLSessionTransferSizeUnknown ; /* -1LL */
Константы