将NSURLSession
作为类的实例变量,因此我需要在类'init
方法中实例化它。
我想在实例化中将委托设置为self
,但在致电self
之前我无法使用super.init()
,我无法呼叫super.init()
直到我实例化所有内容,我需要在实例化中设置委托。
如何将委托设置为self
?似乎没有单独的setDelegate()
函数。
答案 0 :(得分:0)
NSURLRequest
中的委托不是读/写变量(您只能请求它)。你必须在启动时设置它。以下是我解决问题的方法:
在类中声明变量时,请使用以下代码:
var session: NSURLSession = NSURLSession()
然后,在您致电super.init()
后,再次启动session
,并将委托设置为自己,如下所示:
init() {
super.init()
session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration(), delegate: self, delegateQueue: NSOperationQueue.mainQueue())
}
希望有所帮助!
像往常一样,Swift 3已经简化了这一点,你现在可以简单地做到
let session = URLSession(configuration: .ephemeral, delegate: self, delegateQueue: OperationQueue.main)