Swift之单例
2018-11-04 本文已影响12人
XiaoBaa
GitHub Demo: https://github.com/BaHui/BHSwifter
简介
单例是一种重要的
设计模式
, 而在Swift中的单例的实现要比OC中的便捷很多.
- 通过类常量实现了延迟初始化;
- let保证了线程安全;
Swift单例创建
import UIKit
class BHSingletonManager: NSObject {
var name: String?
static let singletoManager = BHSingletonManager()
// MARK: - Return Singleton Object
static func sharedInstance() -> BHSingletonManager {
return singletoManager
}
}
使用示例
override func viewDidLoad() {
super.viewDidLoad()
// 获取单例对象
let singletoManager1 = BHSingletonManager.sharedInstance()
singletoManager1.name = "1000"
print("\(singletoManager1, singletoManager1.name)")
// 输出: (<BHSingletonManager: 0x600002040f00>, Optional("1000"))
// 再次获取单例对象, 对比内存地址和属性值
let singletoManager2 = BHSingletonManager.sharedInstance()
print("\(singletoManager2, singletoManager2.name)")
// 输出: (<BHSingletonManager: 0x600002040f00>, Optional("1000"))
}