网页制作与网站建设宝典,宁波企业做网站,广告设计案例网站,建网站有什么要求NSURLSession 于 2013 年随 iOS 7 的发布一起面世#xff0c;苹果将其定位为 NSURLConnection 的替代者。我们使用最广泛的第三方框架如 AFNetworking 和 SDWebImage 的最新版也都已经全面切换至 NSURLSession。
NSURLSession 不仅仅指代同名类 NSURLSession#xff0c;它还…NSURLSession 于 2013 年随 iOS 7 的发布一起面世苹果将其定位为 NSURLConnection 的替代者。我们使用最广泛的第三方框架如 AFNetworking 和 SDWebImage 的最新版也都已经全面切换至 NSURLSession。
NSURLSession 不仅仅指代同名类 NSURLSession它还包括一系列相互关联的类包括 NSURLSessionConfiguration 以及 NSURLSessionTask 的四个子类NSURLSessionDataTask、NSURLSessionUploadTask、NSURLSessionDownloadTask 和 NSURLSessionStreamTask后者在 iOS 9 中引入。此外它还与 NSURLRequest 和 NSURLCache 这两个此前已经存在的类密切相关。
// 在 iOS 9 之后苹果官方建议开发者使用 NSURLSession 代替 NSURLConnection但 NSURLConnection 并未完全移除仍可在 iOS 9 及之后的版本中使用
API_DEPRECATED(Use NSURLSession (see NSURLSession.h), ios(2.0,9.0))Swift 中, NSURLSession 被重命名为 URLSession ;iOS13 增加了一个 URLSessionWebSocketTask ; URLSession 的用法
NSURLSession 本身是不会进行请求的而是通过创建 task 的形式进行网络请求同一个 URLSession 可以创建多个 task并且这些 task 之间的 cache 和 cookie 是共享的。
NSURLSession 的使用有如下几步:
创建一个 NSURLSession 对象使用 NSURLSession 对象创建一个 Task启动执行 Task resume( ) 方法 URLSession 的创建
有两种方式创建 NSURLSession 对象
默认 NSURLSession 对象shared//创建默认的Session对象会使用全局的Cachecookie和证书
let session URLSession.shared自定义 NSURLSession 对象利用configuration配置// 自定义创建Session对象需要先创建配置对象
let config URLSessionConfiguration.default// 自定义创建Session对象
let session URLSession(configuration: config)// 创建
let session URLSession(configuration: config, delegate: self as! URLSessionDelegate, delegateQueue: nil)使用代理可以处理身份验证失败、重定向、进度更新等功能The queue should be a serial queue, in order to ensure the correct ordering of callbacks. If nil, the session creates a serial operation queue for performing all delegate method calls and completion handler calls. 队列应该是一个串行队列以确保回调的正确顺序。 如果为零会话将创建一个串行操作队列用于执行所有委托方法调用和完成处理程序调用