swift 單例實現
- 在 Swift 中,方法中不允許定義static 的變量
- 第一種: 使用dispatch
static var onceToken:dispatch_once_t = 0
static var instance : NetworkTools?
class func shareTools() -> NetworkTools {
dispatch_once(&onceToken) { () -> Void in
instance = NetworkTools()
}
return instance!
}
internal required init(){
super.init()
}
- 第二種: swift 獨有的單例創建方式
static let _instance : NetworkTools = {
let tool = NetworkTools()
//tool.responseSerializer = AFHTTPResponseSerializer()
tool.responseSerializer.acceptableContentTypes?.insert("text/plain")
return tool
}()