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"))
  }

交流与建议

上一篇下一篇

猜你喜欢

热点阅读