zoukankan      html  css  js  c++  java
  • Swift中简单的单例设计

    import Foundation
    
    class Test: NSObject {
        
        // 提供单例实例
        static let shareInstance = Test()
        
        // 私有化构造方法
        override private init() {}
    }
    
    import Foundation
    
    let testOne = Test.shareInstance
    let testTwo = Test.shareInstance
    if testOne === testTwo {
        print("单例设计成功")
    } else {
        print("单例设计失败")
    }

    输出结果为: 单例设计成功

    PS:

    Test中包含一个名为shareInstance的静态常量属性。用static申明属性意味着该属性只能存在一份。

    这里要注意的是Swift中的静态属性都会延迟加载,也就是说只有instance被使用时,才会初始化它。

    还要注意的一点是,一旦instance被初始化了,那么它就是一个常量属性,不会有第二次初始化的机会了。

    另外:

    其中===在Swift中代表“等价于”,比较的是两个变量或者常量的引用地址,只能用于class的比较。

  • 相关阅读:
    Codeforces Round #226 (Div. 2)
    内存管理
    C/C++ 函数
    Codeforces Round #225 (Div. 2)
    常用链表操作总结
    Codeforces Round #224 (Div. 2)
    Codeforces Round #223 (Div. 2)
    Codeforces Round #222 (Div. 2)
    -树-专题
    Codeforces Round #221 (Div. 2)
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5223065.html
Copyright © 2011-2022 走看看