我正在将我的项目转换为Swift 3。
我在Swift 2.2中有这样的代码:
lazy var downloadsSession: NSURLSession = {
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("bgSessionConfiguration")
let session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil)
return session
}()代码被转换为Swift 3:
lazy var downloadsSession: URLSession = {
let configuration = URLSessionConfiguration.background(withIdentifier: "bgSessionConfiguration")
let session = URLSession(session: configuration, downloadTask: self, didFinishDownloadingToURL: nil)
return session
}()但这种错误是:
“无法将URLSessionConfiguration类型的值转换为预期的参数类型URLSession”
URLSession没有任何方法来获取URLSessionConfiguration!
更新:下面是使用此功能时swift3自动校正的图片:
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)

我如何修正这段代码?
发布于 2016-10-23 10:38:31
您要查找的URLSession初始化程序类似于init(configuration:delegate:delegateQueue:)。因此,请像这样更改会话的初始化。
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)发布于 2018-09-26 14:07:16
我认为您正在实现URLSessionDownloadDelegate方法,编译器正在与此函数混淆。看看这个!
https://stackoverflow.com/questions/40201916
复制相似问题