首页投稿(暂停使用,暂停投稿)

Swift中的单例

2016-07-10  本文已影响85人  迷路的安然和无恙

转战swift有几天了,接触到了swift中的单例,下面介绍一下swift中的单例:

仿照OC中的单例的写法,写一个常用的网络处理单例

class NetworkTools: NSObject {

    static var onceToken: dispatch_once_t = 0
    
    static var tools: NetworkTools?
 //单例访问的函数
    class func sharedTools() -> NetworkTools {
  dispatch_once(&onceToken) { () -> Void in
            tools = NetworkTools()
        }
        return tools!   
    }
}

上面的写法也是单例,但是没有swift范,下面的才是swift中的真正的单例

class NetworkTools: NSObject {
    
    var post: String?
    //  swift单例的写法
    static let networkTools: NetworkTools = {
        let network = NetworkTools()
        network.post = "Post"
        return network
    }()

如果在创建单例时不需要做任何操作的话,你完全可以这样写

class NetworkTools: NSObject {

var post: String?

static let networkTools: NetworkTools = NetworkTools()
}

调用时直接点出来方法并使用即可

 let tools = NetworkTools.networkTools
上一篇下一篇

猜你喜欢

热点阅读