博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift单例模式(Singleton)的实现
阅读量:7000 次
发布时间:2019-06-27

本文共 1014 字,大约阅读时间需要 3 分钟。

方案A:

通过类常量实现了延迟初始化和类型安全。

class SingletonA1 {        //global constant        static let sharedInstance = SingletonA1()}

 

可以通过下面的方式在获得实例前做些设置工作。

class SingletonA2 {    //class constant    static let sharedInstance: SingletonA2 = {        let instance = SingletonA2()        //setup code                //...        return instance        }}

 

方案B:

Swift1.2以前的版本不支类常量,可以用嵌套结构类型的方式实现。

class SingletonB {    class var sharedInstance: SingletonB {        struct Static {            static let instance: SingletonB = SingletonB()        }        return Static.instance    }}

 

方案C:

Swift3.0以前的版本(dispatch_once在3.0中被废弃)也可以使用传统的Objective-C类似的方式实现。

class SingletonC {    class var sharedInstance: SingletonC {        struct Static {            static var onceToken: dispatch_once_t = 0            static var instance: SingletonC? = nil        }        dispatch_once(&Static.onceToken) {            Static.instance = SingletonC()        }        return Static.instance!    }}

 

转载于:https://www.cnblogs.com/matthew-zz/p/5968722.html

你可能感兴趣的文章
ip协议号大全
查看>>
juniper的一些基本命令
查看>>
cocos2d-x学习之CCDictionary中的一个小问题
查看>>
运维少年系列 - ansible and cisco(2)
查看>>
我的友情链接
查看>>
Android 动画之TranslateAnimation应用详解
查看>>
Android Interactive Animation
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
无聊,用c写了个后台扫描
查看>>
洛谷——P2434 [SDOI2005]区间
查看>>
WDS+MDT+WAIK简单部署Win7之捕捉映像
查看>>
致即将逝去的青春
查看>>
haproxy,能够实现将来自用户的80端口的http请求转发至后端8000上的server服务
查看>>
Windows Server 2008 如何去除“IE 增加的安全配置”
查看>>
Emeditor自动切换到单元格选择模式
查看>>
awk学习
查看>>
我的友情链接
查看>>
mongodb中的副本集搭建实践
查看>>
Javascript 实现形如Extjs中的“关闭并带回”
查看>>