URLSession 问题
URLSession issue
我正在将我的项目转换为 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
}()
并且代码转换为Swift3:
lazy var downloadsSession: URLSession = {
let configuration = URLSessionConfiguration.background(withIdentifier: "bgSessionConfiguration")
let session = URLSession(session: configuration, downloadTask: self, didFinishDownloadingToURL: nil)
return session
}()
但是这样的错误是:
"cannot convert value of type URLSessionConfiguration to expected argument type URLSession"
URLSession
没有办法得到 URLSessionConfiguration
!
更新:
下面是使用该功能时swift3自动校正的图片:
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
如何修复此代码?
您正在寻找的初始化程序 URLSession
类似于 init(configuration:delegate:delegateQueue:)
。所以像这样改变你的会话初始化。
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
我认为您正在实施 URLSessionDownloadDelegate 方法,而编译器对这个函数感到困惑。看看吧!
我正在将我的项目转换为 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
}()
并且代码转换为Swift3:
lazy var downloadsSession: URLSession = {
let configuration = URLSessionConfiguration.background(withIdentifier: "bgSessionConfiguration")
let session = URLSession(session: configuration, downloadTask: self, didFinishDownloadingToURL: nil)
return session
}()
但是这样的错误是:
"cannot convert value of type URLSessionConfiguration to expected argument type URLSession"
URLSession
没有办法得到 URLSessionConfiguration
!
更新: 下面是使用该功能时swift3自动校正的图片:
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
如何修复此代码?
您正在寻找的初始化程序 URLSession
类似于 init(configuration:delegate:delegateQueue:)
。所以像这样改变你的会话初始化。
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
我认为您正在实施 URLSessionDownloadDelegate 方法,而编译器对这个函数感到困惑。看看吧!