swift之单例模式

来源:互联网 发布:python node.js 配合 编辑:程序博客网 时间:2024/06/05 03:23

swift单例模式的几种方式:

1. 全局变量

private let _singleton = Singleton()class Singleton: NSObject {    class var sharedInstance: Singleton {        get {            return _singleton        }    }}

2. 内部变量

class Singleton {    class var sharedInstance: Singleton {        get {            struct SingletonStruct {                static let singleton: Singleton = Singleton()            }            return SingletonStruct.singleton        }    }}

3. dispatch_once方式

class Singleton {    class var sharedInstance: Singleton {        get {            struct SingletonStruct {                static var onceToken:dispatch_once_t = 0                static var singleton: Singleton? = nil            }            dispatch_once(&SingletonStruct.onceToken, { () -> Void in                SingletonStruct.singleton = Singleton()            })            return SingletonStruct.singleton!        }    }}



0 0