如何在Swift中设置NSURLSession示例变量的委托?

jq6vz3qz  于 2022-12-17  发布在  Swift
关注(0)|答案(1)|浏览(112)

我有NSURLSession作为类的示例变量,因此我需要在类的init方法中示例化它。
我想在示例化中将委托设置为self,但在调用super.init()之前不能使用self,在示例化所有内容之前不能调用super.init(),并且需要在示例化中设置委托。
如何将委托设置为self?似乎没有单独的setDelegate()函数。

gmxoilav

gmxoilav1#

NSURLRequest中的委托不是读写变量(只能请求),必须在初始化时设置,以下是我的解决方案:
在类中声明变量时,请使用以下代码:

var session: NSURLSession = NSURLSession()

然后,在调用super.init()之后,再次初始化session,并将委托设置为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)

相关问题