首页 > 代码库 > iOS —— NSURLSessionTask
iOS —— NSURLSessionTask
本章主要介绍抽象类 NSURLSessionTask 的一些基本属性和代理
一、NSURLSessionTask
1. NSURLSessionTask 是所有请求任务的基类,也是一个抽象类,所以不能通过它来创建具体的网络请求 task
2. 系统为每个 task 分配的唯一标识符
@property (readonly) NSUInteger taskIdentifier;
3. 当前 task 正在访问的请求对象
@property (nullable, readonly, copy) NSURLRequest *currentRequest;
4. 当前 task 上一个访问的请求对象
@property (nullable, readonly, copy) NSURLRequest *originalRequest;
5. 当前 task 的响应头信息
@property (nullable, readonly, copy) NSURLResponse *response;
6. 当前 task 已经接受的数据大小(单位为字节)
@property (readonly) int64_t countOfBytesReceived;
7. 当前 task 所要接受的数据总大小
@property (readonly) int64_t countOfBytesExpectedToReceive;
8. 当前 task 已经发送的数据大小
@property (readonly) int64_t countOfBytesSent;
9. 当前 task 所要发送的数据总大小
@property (readonly) int64_t countOfBytesExpectedToSend;
10. 设置 task 的描述信息
@property (nullable, copy) NSString *taskDescription;
11. 如果 task 请求失败时的错误信息
@property (nullable, readonly, copy) NSError *error;
12. 当前 task 的请求状态
@property (readonly) NSURLSessionTaskState state;
NSURLSessionTaskState 是一个枚举,如下
1 typedef NS_ENUM(NSInteger, NSURLSessionTaskState) { 2 NSURLSessionTaskStateRunning = 0, // 当前 task 正在接受数据 3 NSURLSessionTaskStateSuspended = 1, // 当前 task 被暂停 4 NSURLSessionTaskStateCanceling = 2, // 当前 task 被取消,会调用 NSURLSessionTaskDelegate 的 task:didCompleteWithError: 消息 5 NSURLSessionTaskStateCompleted = 3, // 当前 task 已经完成 6 } NS_ENUM_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0);
13. 开始 task,所有 task 在创建后都要调用该方法才能开始请求
- (void)resume;
14. 暂停 task,会调用 NSURLSessionTaskDelegate 的 task:didCompleteWithError: 方法
- (void)cancel;
15. 暂停 task
- (void)suspend;
iOS —— NSURLSessionTask
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。