我有NSURLSession作为类的示例变量,因此我需要在类的init方法中示例化它。我想在示例化中将委托设置为self,但在调用super.init()之前不能使用self,在示例化所有内容之前不能调用super.init(),并且需要在示例化中设置委托。如何将委托设置为self?似乎没有单独的setDelegate()函数。
NSURLSession
init
self
super.init()
setDelegate()
gmxoilav1#
NSURLRequest中的委托不是读写变量(只能请求),必须在初始化时设置,以下是我的解决方案:在类中声明变量时,请使用以下代码:
NSURLRequest
var session: NSURLSession = NSURLSession()
然后,在调用super.init()之后,再次初始化session,并将委托设置为self,如下所示:
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)
1条答案
按热度按时间gmxoilav1#
NSURLRequest
中的委托不是读写变量(只能请求),必须在初始化时设置,以下是我的解决方案:在类中声明变量时,请使用以下代码:
然后,在调用
super.init()
之后,再次初始化session
,并将委托设置为self,如下所示:希望能有所帮助!
Swift 3的更新:
像往常一样,Swift 3已经简化了很多,现在您可以简单地执行以下操作