关于swift的单例写法有好几种,这里介绍一下其中我使用的一种单例
class HttpManager: AFHTTPRequestOperationManager {
//创建一个网络请求类的单例
class func sharedHttpManager() -> AFHTTPRequestOperationManager {
struct SingleTon {
static var onceToken : dispatch_once_t = 0
static var manager : AFHTTPRequestOperationManager?
}
dispatch_once(&SingleTon.onceToken) { () -> Void in
SingleTon.manager = AFHTTPRequestOperationManager(baseURL: NSURL.init(string: BaseUrl.baseUrlString))
SingleTon.manager?.responseSerializer = AFJSONResponseSerializer.init(readingOptions: NSJSONReadingOptions.MutableContainers)
SingleTon.manager?.responseSerializer.acceptableContentTypes = NSSet(array: ["application/x-javascript","application/json","text/html","text/javascript","text/plain"]) as Set<NSObject>
}
return SingleTon.manager!
}
}
重点
在于dispatch_once保证代码块只执行一次,单例就这样可以使用了哈哈