Swift 为什么对URLSession配置对象的引用会中断?
使用Swift 5。正在尝试创建Swift 为什么对URLSession配置对象的引用会中断?,swift,Swift,使用Swift 5。正在尝试创建URLSession,即 init(configuration: URLSessionConfiguration, delegate: URLSessionDelegate?, delegateQueue: OperationQueue?) …但我只能使用配置对象进行初始化,如果我尝试添加委托,配置参数(对默认值类变量的引用)将中断,我会得到“表达式类型不明确,没有更多上下文”错误 提供下面的代码,我认为是正确的 fileprivate lazy var ses
URLSession
,即
init(configuration: URLSessionConfiguration, delegate: URLSessionDelegate?, delegateQueue: OperationQueue?)
…但我只能使用配置对象进行初始化,如果我尝试添加委托,配置参数(对默认值类变量的引用)将中断,我会得到“表达式类型不明确,没有更多上下文”错误
提供下面的代码,我认为是正确的
fileprivate lazy var session: URLSession = { return URLSession(configuration: .default, delegate: self, delegateQueue: nil) }()
有人知道为什么会发生这种情况吗?也许问题出在您的类或处理对象上,我尝试过,效果很好:
class Trying: NSObject, URLSessionDelegate {
fileprivate lazy var session: URLSession = { return URLSession(configuration: .default, delegate: self, delegateQueue: nil) }()
override init() {
}
}
可能是您的类或处理对象有问题,我尝试过,效果很好:
class Trying: NSObject, URLSessionDelegate {
fileprivate lazy var session: URLSession = { return URLSession(configuration: .default, delegate: self, delegateQueue: nil) }()
override init() {
}
}
如果未声明self
符合urlsessionelegate
,则会发生这种情况。顺便说一下,您不需要闭包语法lazy var session=URLSession(配置:。默认,委托:self,delegateQueue:nil)
就足够了。如果self
未声明符合urlsessionelegate
,则会发生这种情况。顺便说一句,您不需要闭包语法lazy var session=URLSession(配置:。默认,委托:self,delegateQueue:nil)
就足够了。谢谢@Rob和@AndyNadal。初始类本身不符合urlsessionelegate
,我忘记了,正因为如此,它需要一个这样的扩展。谢谢@Rob和@AndyNadal。最初的类本身不符合urlsessionelegate
,我忘记了,正因为如此,它需要一个这样的扩展。