Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 为什么对URLSession配置对象的引用会中断?_Swift - Fatal编程技术网

Swift 为什么对URLSession配置对象的引用会中断?

Swift 为什么对URLSession配置对象的引用会中断?,swift,Swift,使用Swift 5。正在尝试创建URLSession,即 init(configuration: URLSessionConfiguration, delegate: URLSessionDelegate?, delegateQueue: OperationQueue?) …但我只能使用配置对象进行初始化,如果我尝试添加委托,配置参数(对默认值类变量的引用)将中断,我会得到“表达式类型不明确,没有更多上下文”错误 提供下面的代码,我认为是正确的 fileprivate lazy var ses

使用Swift 5。正在尝试创建
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
,我忘记了,正因为如此,它需要一个这样的扩展。