在URL会话中执行的任务,例如下载指定的资源
Declaraion
class URLSessionTask : NSObject
Overview
URLSessionTask类是URL会话中任务的基类。任务始终是会话的一部分;您可以通过在URLSession实例上调用任务创建方法之一来创建任务。您调用的方法确定任务的类型
- 使用URLSession的dataTask(with :)和相关方法来创建URLSessionDataTask实例。数据任务请求资源,以内存中的一个或多个NSData对象的形式返回服务器的响应。默认,临时和共享会话均支持它们,但后台会话不支持它们。
- 使用URLSession的uploadTask(with:from :)和相关方法来创建URLSessionUploadTask实例 。上载任务类似于数据任务,不同之处在于上载任务使提供请求正文更加容易,因此您可以在检索服务器响应之前上载数据。此外,后台会话支持上传任务。
- 使用URLSession的downloadTask(with :)和相关方法来创建URLSessionDownloadTask实例。下载任务将资源直接下载到磁盘上的文件中。 任何类型的会话均支持下载任务。
- 使用URLSession的streamTask(withHostName:port :)或streamTask(with :)创建URLSessionStreamTask实例。流任务从主机名和端口或网络服务对象建立TCP / IP连接。
创建任务后,可以通过调用它的resume()方法来启动它。 然后,会话将保持对任务的强烈引用,直到请求完成或失败为止; 除非它对应用程序的内部簿记有用,否则您无需保留对该任务的引用。
Note
所有的任务属性支持简直观察者模式
Topics
Controlling the Task State
func cancel()
取消任务
func resume()
继续任务(如果他是暂停的)
func suspend()
暂停终止任务
var state: URLSessionTask.State
任务的当前状态-活动,暂停,正在取消或完成的过程
enum URLSessionTask.state
用于确定任务当前状态的常量
var priority : Float
您希望主机处理任务的相对优先级,指定为0.0(最低优先级)到1.0(最高优先级)之间的浮点值。
URL Session Task Priority
与priority属性一起使用的,用于向主机提供任务优先级提示的常量。
Obtaining Task Progress
var progress : Progress
总体任务进度的表示
var countOfBytesExpectedToReceive: Int64
任务期望在响应主体中接收的字节数。
var countOfBytesReceived: Int64
任务已从响应正文中的服务器接收到的字节数
var countOfBytesExpectedToSend: Int64
任务期望在请求正文中发送的字节数
var countOfBytesSend: Int64
任务已发送到请求正文中的服务器的字节数
let NSURLSessionTransferSizeUnknown: Int64
传输的总大小无法确定
Obtaining General Task Information
var currentRequest: URLRequest?
任务当前正在处理的URL请求对象
var originalRequest: URLRequest?
创建任务时传递的原始的请求对象
var resopnse: URLResponse?
服务器对当前活动请求的响应
var taskDescription: String?
应用程序提供的当前任务的字符串值
var taskIdentifier: Int
在会话中唯一标识任务的标识符
var error: Error?
指示任务失败原因的错误对象
Scheduling Tasks
var contOfBytesClientExpextsToReceive: Int64
客户期望接收的字节数的最佳猜测上限
var countOfBytesClientEexpectsToSend: Int64
客户端期望发送的字节数的最佳猜测上限
let NSURLSessinTransferSizeUnknown:Int64
无法确定传输的总大小。
ver earliesBeginDate: Date?
网络负载应开始的最早日期。
Initalizers
Deprecated
init()
Type Methods
class func new() -> Self
Relationships
Inherits Form
NSObject
Conforms To
CVarArg
Equatable
Hashable
NSCopying
ProgressReporting
网友评论