美文网首页
Swift之单例

Swift之单例

作者: XiaoBaa | 来源:发表于2018-11-04 10:22 被阅读12次

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

    交流与建议

    相关文章

      网友评论

          本文标题:Swift之单例

          本文链接:https://www.haomeiwen.com/subject/zgkrxqtx.html