swift 单例实现

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
    }()

你可能感兴趣的:(swift,单例)