【发布时间】:2015-10-05 13:47:07
【问题描述】:
我想继承 NSURLSession 类,但初始化有问题。
基本上我重写构造函数并在那里初始化常量authUrl,然后调用父init方法。
class NSURLAuthSession: NSURLSession {
let authUrl:NSURL;
//Error: Initializer does not override a designated initializer from its superclass
override init(configuration: NSURLSessionConfiguration, delegate: NSURLSessionDelegate?, delegateQueue queue: NSOperationQueue?){
self.authUrl = NSURL.URLWithBaseURLString("http://192.168.10.105:8888/api/v1", pathSegments: ["users", "login"])!
super.init(configuration: configuration, delegate: delegate, delegateQueue: queue)
}
}
从 NSURLSession 的源代码中我发现它有两个初始化器:
public /*not inherited*/ init(configuration: NSURLSessionConfiguration)
public /*not inherited*/ init(configuration: NSURLSessionConfiguration, delegate: NSURLSessionDelegate?, delegateQueue queue: NSOperationQueue?)
我希望“最长”的 init 是指定的初始化程序,但事实并非如此。
我怀疑指定的初始化程序是源代码中甚至没有指定的init()。
如何覆盖初始化程序并设置配置NSURLSessionConfiguration?
【问题讨论】:
标签: swift nsurlsession subclassing nsurlsessionconfiguration