标签:
保证一个类公有一个实例,并提供一个访问它的全局访问点。
1、使用场景
2、实现的重要三个步骤
Swift语言不支持变量及方法的权限,没有办法隐藏变量及方法,可以随意直接创建一个实例。单例的创建有很多写法,Swift支持只有struct支持静态变量,class不支持静态变量,所以很容易想到,在类的内部使用struct就能解决引用的保存问题,代码如下:
class GlobalData: NSObject { struct Inner { static var instance: GlobalData? static var token: dispatch_once_t = 0 } class var sharedInstance: GlobalData { dispatch_once(&Inner.token, { () -> Void in if Inner.instance == nil { Inner.instance = GlobalData() } }) return Inner.instance! } }
标签:
原文地址:http://www.cnblogs.com/shidaying/p/4773457.html