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(configurationconfiguration: NSURLSessionConfiguration) -> NSURLSessionObjective C
+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configurationПараметры
configurationОбъект конфигурации, указывающий определенные способы поведения, такие как кэширующиеся политики, тайм-ауты, прокси, конвейерная обработка, версии TLS для поддержки, политики cookie, учетное хранение, и т.д. Для получения дополнительной информации посмотрите Ссылку класса NSURLSessionConfiguration.
Обсуждение
Если этот метод используется, сеанс создает сериал
NSOperationQueueобъект, на котором можно выполнить все вызовы метода делегата и вызовы обработчика завершения.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает сеанс с указанной конфигурацией сеанса, делегатом и очередью работы.
Объявление
Swift
init(configurationconfiguration: NSURLSessionConfiguration?, delegatedelegate: NSURLSessionDelegate?, delegateQueuequeue: NSOperationQueue?) -> NSURLSessionObjective C
+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configurationdelegate:(id<NSURLSessionDelegate>)delegatedelegateQueue:(NSOperationQueue *)queueПараметры
configurationОбъект конфигурации, указывающий определенные способы поведения, такие как кэширующиеся политики, тайм-ауты, прокси, конвейерная обработка, версии TLS для поддержки, политики cookie и учетное хранение.
Поскольку сеанс копирует объект конфигурации, безопасно изменить объект конфигурации и использовать его для построения дополнительных сеансов.
Для получения дополнительной информации посмотрите Ссылку класса NSURLSessionConfiguration.
delegateОбъект делегата сеанса, обрабатывающий запросы для аутентификации и других связанных с сеансом событий.
Этот объект делегата ответственен за обработку запросов аутентификации, за принятие кэширующихся решений, и для обработки других связанных с сеансом событий. Если
nil, класс использует предоставленного системой делегата и должен использоваться только с методами, берущими обработчики завершения.queueОчередь для планирования вызовов делегата и обработчиков завершения. Если
nil, сеанс создает последовательную очередь работы для выполнения всех вызовов метода делегата и вызовов обработчика завершения.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Возвращает совместно используемый одноэлементный объект сеанса.
Объявление
Swift
class func sharedSession() -> NSURLSessionObjective 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) -> NSURLSessionDataTaskObjective C
- (NSURLSessionDataTask *)dataTaskWithURL:(NSURL *)urlПараметры
urlhttpилиhttpsURL, который будет получен.Возвращаемое значение
Новая задача данных сеанса.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает HTTP
GETзапрос на указанный URL, затем вызывает обработчик после завершения.Объявление
Swift
func dataTaskWithURL(_url: NSURL, completionHandlercompletionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTaskObjective C
- (NSURLSessionDataTask *)dataTaskWithURL:(NSURL *)urlcompletionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandlerПараметры
urlhttpилиhttpsURL, который будет получен.completionHandlerОбработчик завершения для вызова, когда запрос загрузки завершен. Если отправлено в сеанс создается путем вызова
sessionWithConfiguration:delegate:delegateQueue:с не -nilзначение дляdelegateQueueпараметр, этот обработчик выполняется на той очереди делегата.Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть
nil, потому что нет никакого другого способа получить данные ответа.Возвращаемое значение
Новая задача данных сеанса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает Запрос HTTP на основе указанного объекта URL-запроса.
Объявление
Swift
func dataTaskWithRequest(_request: NSURLRequest) -> NSURLSessionDataTaskObjective 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, completionHandlercompletionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTaskObjective C
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)requestcompletionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandlerПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, данные организации или поток организации, и т.д.completionHandlerОбработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.
Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть
nil, потому что нет никакого другого способа получить данные ответа.Возвращаемое значение
Новая задача данных сеанса.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает задачу загрузки для указанного URL и сохраняет результаты к файлу.
Объявление
Swift
func downloadTaskWithURL(_url: NSURL) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)urlПараметры
urlNSURLобъект, обеспечивающий URL для загрузки.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает задачу загрузки для указанного URL, сохраняет результаты к файлу и вызывает обработчик после завершения.
Объявление
Swift
func downloadTaskWithURL(_url: NSURL, completionHandlercompletionHandler: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)urlcompletionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandlerПараметры
urlNSURLобъект, обеспечивающий URL для загрузки.completionHandlerОбработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.
Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть
nil, потому что нет никакого другого способа получить данные ответа.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает задачу загрузки для указанного URL-запроса и сохраняет результаты к файлу.
Объявление
Swift
func downloadTaskWithRequest(_request: NSURLRequest) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)requestПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, данные организации или поток организации, и т.д.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает задачу загрузки для указанного URL-запроса, сохраняет результаты к файлу и вызывает обработчик после завершения.
Объявление
Swift
func downloadTaskWithRequest(_request: NSURLRequest, completionHandlercompletionHandler: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)requestcompletionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandlerПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, данные организации или поток организации, и т.д.completionHandlerОбработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.
Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть
nil, потому что нет никакого другого способа получить данные ответа.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает задачу загрузки возобновить ранее отмененную или неработающую загрузку.
Объявление
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Доступность
Доступный в iOS 7.0 и позже.
-
Создает задачу загрузки возобновить ранее отмененную или неработающую загрузку и вызывает обработчик после завершения.
Объявление
Swift
func downloadTaskWithResumeData(_resumeData: NSData, completionHandlercompletionHandler: ((NSURL!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDownloadTaskObjective C
- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeDatacompletionHandler:(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Доступность
Доступный в iOS 7.0 и позже.
-
Создает Запрос HTTP для указанного объекта URL-запроса и загружает объект предоставленных данных.
Объявление
Swift
func uploadTaskWithRequest(_request: NSURLRequest, fromDatabodyData: NSData?) -> NSURLSessionUploadTaskObjective C
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)requestfromData:(NSData *)bodyDataПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.bodyDataДанные организации для запроса.
Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
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 *)requestfromData:(NSData *)bodyDatacompletionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandlerПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.bodyDataДанные организации для запроса.
completionHandlerОбработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата.
Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть
nil, потому что нет никакого другого способа получить данные ответа. Если Вам не нужны данные ответа, используйте наблюдение значения ключа для наблюдения за изменениями в состоянии задачи для определения, когда это завершается.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
В отличие от этого
uploadTaskWithRequest:fromData:, этот метод возвращает организацию ответа после того, как это было получено полностью и не требует, чтобы Вы записали пользовательскому делегату для получения организации ответа.После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает Запрос HTTP для загрузки указанного файла URL.
Объявление
Swift
func uploadTaskWithRequest(_request: NSURLRequest, fromFilefileURL: NSURL) -> NSURLSessionUploadTaskObjective C
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)requestfromFile:(NSURL *)fileURLПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.fileURLURL файла для загрузки.
Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
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 *)requestfromFile:(NSURL *)fileURLcompletionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandlerПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы.fileURLURL файла для загрузки.
completionHandlerОбработчик завершения для вызова, когда запрос загрузки завершен. Этот обработчик выполняется на очереди делегата. Если Вы не предоставили пользовательскому делегату, этот параметр не должен быть
nil, потому что нет никакого другого способа получить данные ответа.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
В отличие от этого
uploadTaskWithRequest:fromFile:, этот метод возвращает организацию ответа после того, как это было получено полностью и не требует, чтобы Вы записали пользовательскому делегату для получения организации ответа.После создания задачи необходимо запустить ее путем вызова
resumeметод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Создает Запрос HTTP для загрузки данных на основе указанного URL-запроса.
Объявление
Swift
func uploadTaskWithStreamedRequest(_request: NSURLRequest) -> NSURLSessionUploadTaskObjective C
- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)requestПараметры
requestNSURLRequestобъект, обеспечивающий URL, политику кэша, тип запроса, и т.д. Поток организации и данные организации в этом объекте запроса проигнорированы, иNSURLSessionвызывает его делегатаURLSession:task:needNewBodyStream:метод для предоставления данных организации.Возвращаемое значение
Новый сеанс загружает задачу.
Обсуждение
После создания задачи необходимо запустить ее путем вызова
resumeметод. У делегата задачи загрузки должен быть aURLSession: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)Параметры
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объекты, возвращенныеNSURLSessionAPI.Объявление
Swift
let NSURLSessionDownloadTaskResumeData: String let NSURLErrorBackgroundTaskCancelledReasonKey: StringObjective C
NSString *const NSURLSessionDownloadTaskResumeData; NSString * const NSURLErrorBackgroundTaskCancelledReasonKey;Константы
-
NSURLSessionDownloadTaskResumeDataКлюч в ошибочном словаре, предоставляющем данные резюме.
Когда ошибка передачи происходит, объект делегата или обработчик завершения добираются
NSErrorобъект. Если передача resumable, тот ошибочный объектuserInfoсловарь содержит значение для этого ключа. Для возобновления передачи приложение может передать то значениеdownloadTaskWithResumeData:илиdownloadTaskWithResumeData:completionHandler:метод.Доступный в iOS 7.0 и позже.
-
NSURLErrorBackgroundTaskCancelledReasonKeyNSNumberзначение, указывающее, почему была отменена фоновая задача. Для списка возможных значений посмотрите 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;Константы
-
RunningNSURLSessionTaskStateRunningЗадача в настоящее время обслуживается сеансом. Задача в этом состоянии подвергается запросу и тайм-аутам ресурса, указанным в объекте конфигурации сеанса.
Доступный в iOS 7.0 и позже.
-
SuspendedNSURLSessionTaskStateSuspendedЗадача была приостановлена приложением. Никакая последующая обработка не имеет место, пока это не возобновляется. Задача в этом состоянии не подвергается тайм-аутам.
Доступный в iOS 7.0 и позже.
-
CancelingNSURLSessionTaskStateCancelingЗадача получила a
cancelсообщение. Делегат может или мог не получить aURLSession:task:didCompleteWithError:сообщение все же. Задача в этом состоянии не подвергается тайм-аутам.Доступный в iOS 7.0 и позже.
-
CompletedNSURLSessionTaskStateCompletedЗадача завершилась (не будучи отмененным), и делегат задачи не получает дальнейших обратных вызовов. Если задача завершилась успешно, задача
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;Константы
-
UseCredentialNSURLSessionAuthChallengeUseCredentialИспользуйте указанные учетные данные, которые могут быть
nil.Доступный в iOS 7.0 и позже.
-
PerformDefaultHandlingNSURLSessionAuthChallengePerformDefaultHandlingИспользуйте обработку значения по умолчанию для проблемы, как будто не был реализован этот метод делегата. Предоставленный учетный параметр проигнорирован.
Доступный в iOS 7.0 и позже.
-
CancelAuthenticationChallengeNSURLSessionAuthChallengeCancelAuthenticationChallengeОтмените весь запрос. Предоставленный учетный параметр проигнорирован.
Доступный в iOS 7.0 и позже.
-
RejectProtectionSpaceNSURLSessionAuthChallengeRejectProtectionSpaceОтклоните эту проблему и вызовите метод делегата аутентификации снова со следующим пространством защиты аутентификации. Предоставленный учетный параметр проигнорирован.
Доступный в iOS 7.0 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
-
Постоянное обозначение неизвестного размера передачи.
Объявление
Swift
let NSURLSessionTransferSizeUnknown: Int64Objective C
const int64_t NSURLSessionTransferSizeUnknown ; /* -1LL */Константы
