I am trying to make a subclass of AFHTTPSessionManager
using Swift. According to the documentation, making a singleton instance of your subclass is recommended. I understand how to make a singleton in Swift, but I need to be able to initialize my singleton with a base URL.
class ZRUserAuthenticationHTTPSessionManager: AFHTTPSessionManager {
class var sharedManager: ZRUserAuthenticationHTTPSessionManager {
struct StaticManager {
static var instance: ZRUserAuthenticationHTTPSessionManager? = nil
static var onceToken: dispatch_once_t = 0
}
if (StaticManager.instance == nil) {
dispatch_once(&StaticManager.onceToken) {
StaticManager.instance = ZRUserAuthenticationHTTPSessionManager(baseURL: myURL)
}
}
return StaticManager.instance!
}
}
How do I allow my singleton instance to be initialized with a configureable parameter?
Thanks
I've figured out how to do this.
public class func createSharedManager(baseURL: NSURL!) -> ZRUserAuthenticationHTTPSessionManager {
StaticManager.instance = ZRUserAuthenticationHTTPSessionManager(baseURL: baseURL)
return StaticManager.instance!
}
public class var sharedManager: ZRUserAuthenticationHTTPSessionManager? {
return StaticManager.instance
}
private struct StaticManager {
static var instance: ZRUserAuthenticationHTTPSessionManager? = nil
}