AFHTTPSessionManager 子类单例,配置在 Swift
AFHTTPSessionManager Subclass Singleton with Configuration in Swift
我正在尝试使用 Swift 创建 AFHTTPSessionManager
的子类。根据文档,建议为子类创建一个单例实例。我了解如何在 Swift 中创建单例,但我需要能够使用基础 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!
}
}
如何允许使用可配置参数初始化我的单例实例?
谢谢
我已经知道怎么做了。
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
}
我正在尝试使用 Swift 创建 AFHTTPSessionManager
的子类。根据文档,建议为子类创建一个单例实例。我了解如何在 Swift 中创建单例,但我需要能够使用基础 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!
}
}
如何允许使用可配置参数初始化我的单例实例?
谢谢
我已经知道怎么做了。
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
}