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