首页 > 编程语言 > 详细

Swift中简单的单例设计

时间:2016-02-27 17:51:56      阅读:175      评论:0      收藏:0      [点我收藏+]
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的比较。

Swift中简单的单例设计

原文:http://www.cnblogs.com/Rinpe/p/5223065.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!