NSURLSessionTask
NSURLSessionTask
класс является базовым классом для задач в сеансе URL. Задачами всегда является часть сеанса; Вы создаете задачу путем обращения к одному из методов создания задачи NSURLSession
объект. Метод, который Вы вызываете, определяет тип задачи.
Сеансы URL обеспечивают три типа задач: задачи данных, задачи загрузки и задачи загрузки. Этими задачами являются экземпляры NSURLSessionDataTask
, NSURLSessionUploadTask
, и NSURLSessionDownloadTask
подклассы NSURLSessionTask
, соответственно.
Задачи данных запрашивают ресурс, возвращая ответ сервера как один или больше
NSData
объекты в памяти. Они поддерживаются в значении по умолчанию, эфемерных, и совместно используемых сеансах, но не поддерживаются в фоновых сеансах.Задачи загрузки походят на задачи данных, за исключением того, что они упрощают предоставлять организации запроса, таким образом, можно загрузить данные прежде, чем получить ответ сервера. Кроме того, задачи загрузки поддерживаются в фоновых сеансах.
Задачи загрузки загружают ресурс непосредственно на файл на диске. Задачи загрузки поддерживаются в любом типе сеанса.
После создания задачи Вы запускаете ее путем вызова resume
метод. Сеанс тогда поддерживает сильную ссылку к задаче до концов запроса или сбоев; Вы не должны поддерживать ссылку на задачу, если не полезно сделать так во внутренних бухгалтерских целях Вашего приложения.
Наследование
-
NSObject
-
NSURLSessionTask
-
NSURLSessionDataTask
-
NSURLSessionDownloadTask
-
NSObject
-
NSURLSessionTask
-
NSURLSessionDataTask
-
NSURLSessionDownloadTask
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCopying
-
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.9 и позже.
-
Отменяет задачу.
Объявление
Swift
func cancel()
Objective C
- (void)cancel
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
См. также
-
Возобновляет задачу, если она приостановлена.
Объявление
Swift
func resume()
Objective C
- (void)resume
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Временно приостанавливает задачу.
Объявление
Swift
func suspend()
Objective C
- (void)suspend
Обсуждение
Задача, в то время как приостановлено, не производит сетевого трафика и не подвергается тайм-аутам. Задача загрузки может продолжать передавать данные в более позднее время. Все другие задачи должны запуститься, когда возобновлено.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
См. также
-
Текущее состояние задачи — активный, приостановленный, в процессе того, чтобы быть отмененным, или завершенный. (только для чтения)
Объявление
Swift
var state: NSURLSessionTaskState { get }
Objective C
@property(readonly) NSURLSessionTaskState state
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Число байтов, которые задача ожидает получать в организации ответа. (только для чтения)
Объявление
Swift
var countOfBytesExpectedToReceive: Int64 { get }
Objective C
@property(readonly) int64_t countOfBytesExpectedToReceive
Обсуждение
Это значение определяется на основе
Content-Length
заголовок получен от сервера. Если тот заголовок отсутствует, значениеNSURLSessionTransferSizeUnknown
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
countOfBytesReceived countOfBytesReceived
СвойствоЧисло байтов, которые задача получила от сервера в организации ответа. (только для чтения)
Объявление
Swift
var countOfBytesReceived: Int64 { get }
Objective C
@property(readonly) int64_t countOfBytesReceived
Обсуждение
Быть уведомленным, когда это значение изменяется, реализация
URLSession:dataTask:didReceiveData:
метод делегата (для данных и задач загрузки) илиURLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:
метод (для задач загрузки).Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Число байтов, которые задача ожидает отправлять в организации запроса. (только для чтения)
Объявление
Swift
var countOfBytesExpectedToSend: Int64 { get }
Objective C
@property(readonly) int64_t countOfBytesExpectedToSend
Обсуждение
Загрузочная система URL может определить длину данных загрузки тремя способами:
От длины
NSData
объект обеспечил как организация загрузки.От длины файла на диске, предоставленном как организация загрузки задачи загрузки (не задача загрузки).
От
Content-Length
в объекте запроса, если Вы явно устанавливаете его.
Иначе, значение
NSURLSessionTransferSizeUnknown
(-1
) если Вы обеспечили поток или объект данных организации или нуль (0
) если Вы не сделали.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
countOfBytesSent countOfBytesSent
СвойствоЧисло байтов, которые задача отправила в сервер в организации запроса. (только для чтения)
Объявление
Swift
var countOfBytesSent: Int64 { get }
Objective C
@property(readonly) int64_t countOfBytesSent
Обсуждение
Это количество байта включает только длину самой организации запроса, не заголовки запроса.
Быть уведомленным, когда это значение изменяется, реализация
URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:
метод делегата.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
currentRequest currentRequest
СвойствоОбъект URL-запроса, в настоящее время обрабатываемый задачей. (только для чтения)
Объявление
Swift
@NSCopying var currentRequest: NSURLRequest { get }
Objective C
@property(readonly, copy) NSURLRequest *currentRequest
Обсуждение
Это значение обычно является тем же как начальным запросом (
originalRequest
) кроме тех случаев, когда сервер реагировал на начальный запрос с перенаправлением к различному URL.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
originalRequest originalRequest
СвойствоКогда задача создавалась, исходный объект запроса передал. (только для чтения)
Объявление
Swift
@NSCopying var originalRequest: NSURLRequest { get }
Objective C
@property(readonly, copy) NSURLRequest *originalRequest
Обсуждение
Это значение обычно является тем же как в настоящее время активным запросом (
currentRequest
) кроме тех случаев, когда сервер реагировал на начальный запрос с перенаправлением к различному URL.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Ответ сервера на в настоящее время активный запрос. (только для чтения)
Объявление
Swift
@NSCopying var response: NSURLResponse? { get }
Objective C
@property(readonly, copy) NSURLResponse *response
Обсуждение
Этот объект предоставляет информацию о запросе в соответствии с сервером. Эта информация всегда включает исходный URL. Это может также включать ожидаемую длину, информацию о типе MIME, кодируя информацию, предложенное имя файла или комбинацию их.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
taskDescription taskDescription
СвойствоПредоставленное приложением описание текущей задачи.
Обсуждение
Это значение может быть
nil
. Это предназначается для содержания человекочитаемых строк, которые можно тогда вывести на экран пользователю как часть пользовательского интерфейса приложения.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
taskIdentifier taskIdentifier
СвойствоИдентификатор однозначно определяет задачу в данном сеансе. (только для чтения)
Объявление
Swift
var taskIdentifier: Int { get }
Objective C
@property(readonly) NSUInteger taskIdentifier
Обсуждение
Это значение уникально только в контексте единственного сеанса; задачи в других сеансах могут иметь то же
taskIdentifier
значение.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Ошибочный объект, указывающий, почему задача перестала работать. (только для чтения)
Объявление
Swift
@NSCopying var error: NSError? { get }
Objective C
@property(readonly, copy) NSError *error
Обсуждение
Это значение
NULL
если передача завершилась успешно, если задача все еще активна или.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
Константы для определения текущего состояния задачи.
Объявление
Swift
enum NSURLSessionTaskState : Int { case Running case Suspended case Canceling case Completed }
Objective C
typedef NS_ENUM (NSInteger, NSURLSessionTaskState ) { NSURLSessionTaskStateRunning = 0, NSURLSessionTaskStateSuspended = 1, NSURLSessionTaskStateCanceling = 2, NSURLSessionTaskStateCompleted = 3, };
Константы
-
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 и позже.
-