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, };Константы
-
RunningNSURLSessionTaskStateRunningЗадача в настоящее время обслуживается сеансом. Задача в этом состоянии подвергается запросу и тайм-аутам ресурса, указанным в объекте конфигурации сеанса.
Доступный в OS X v10.9 и позже.
-
SuspendedNSURLSessionTaskStateSuspendedЗадача была приостановлена приложением. Никакая последующая обработка не имеет место, пока это не возобновляется. Задача в этом состоянии не подвергается тайм-аутам.
Доступный в OS X v10.9 и позже.
-
CancelingNSURLSessionTaskStateCancelingЗадача получила a
cancelсообщение. Делегат может или мог не получить aURLSession:task:didCompleteWithError:сообщение все же. Задача в этом состоянии не подвергается тайм-аутам.Доступный в OS X v10.9 и позже.
-
CompletedNSURLSessionTaskStateCompletedЗадача завершилась (не будучи отмененным), и делегат задачи не получает дальнейших обратных вызовов. Если задача завершилась успешно, задача
errorсвойствоnil. Иначе, это обеспечивает ошибочный объект, говорящий то, что пошло не так, как надо. Задача в этом состоянии не подвергается тайм-аутам.Доступный в OS X v10.9 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.9 и позже.
-
