在swift中有两种方法可以实现单例模式。
一、使用dispatch_once ,代码如下:
class Singleton: NSObject {
static var once_t : dispatch_once_t = 0
static var instance : Singleton?
class func sharedObject() -> Singleton{
dispatch_once(&once_t) { () -> Void in
instance = Singleton()
}
return instance!
}
}
二、利用let只能赋值一次的特性
- 说明:switf保证赋值的多线程安全性
- 代码如下:
class SingletonEx:NSObject{
static let instance = SingletonEx()
class func sharedObject() -> SingletonEx{
return instance
}
}
网友评论