Swift之单例模式

来源:互联网 时间:1970-01-01

三种Swift实现单例模式的方法:全局变量,内部变量,dispatch_once方式

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!

}

}

}



相关阅读:
Top