iOS 9中的sendAsynchronousRequest弃用并在iOS 10中与OperationQueue一起使用
问题描述:
我试图下载超过1000张图像,总大小为50MB。 我对iOS的9码是:iOS 9中的sendAsynchronousRequest弃用并在iOS 10中与OperationQueue一起使用
let operationQueue = OperationQueue.main
operationQueue.maxConcurrentOperationCount = 1
operationQueue.qualityOfService = .background
for url in urls{
let urlRequest = URLRequest(url: URL(string: url)!)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue: operationQueue, completionHandler: { (response, data, error) in
//image
})
}
所以我想一个一个地下载图像,但是现在在iOS的10 sendAsynchronousRequest已被弃用,我不知道如何添加图像队列。我在iOS 10中看到了关于使用sendAsynchronousRequest的不同问题,但我没有找到如何将它添加到队列中的问题。大部分答案都是使用URLSession.shared.dataTask(...)
,但是你不能将任务添加到队列中。任何建议如何将所有请求添加到operationQueue?
答
URLSession
是正确的路要走。
与NSURLConnection
不同,该请求被分派到一个队列中,URLSession
本身被分派到一个队列中。
创建
init(configuration: URLSessionConfiguration,
delegate: URLSessionDelegate?,
delegateQueue queue: OperationQueue?)
自定义会话这是值得的阅读documentation