gpt4 book ai didi

swift - 如何在 Swift 中设置 NSURLSession 实例变量的委托(delegate)?

转载 作者:搜寻专家 更新时间:2023-11-01 05:42:53 24 4
gpt4 key购买 nike

NSURLSession 作为类的实例变量,因此我需要在类的 init 方法中实例化它。

我想在实例化中将委托(delegate)设置为 self,但在调用 super.init() 之前我不能使用 self >,在实例化所有内容之前我无法调用 super.init(),并且我需要在实例化中设置委托(delegate)。

如何将委托(delegate)设置为 self?似乎没有单独的 setDelegate() 函数。

最佳答案

NSURLRequest 中的委托(delegate)不是读/写变量(您只能请求它)。你必须在启动时设置它。这是我对问题的解决方案:

在类中声明变量时,使用这段代码:

var session: NSURLSession = NSURLSession()

然后,在调用 super.init() 之后,再次启动 session 并将委托(delegate)设置为 self,如下所示:

init() {
super.init()
session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration(), delegate: self, delegateQueue: NSOperationQueue.mainQueue())
}

希望对您有所帮助!

Swift 3 更新:

像往常一样,Swift 3 已经大大简化了这一点,你现在可以简单地做

let session = URLSession(configuration: .ephemeral, delegate: self, delegateQueue: OperationQueue.main)

关于swift - 如何在 Swift 中设置 NSURLSession 实例变量的委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com