Singleton in Swift

单例模式是我们常用的一种设计模式,在Swift中如何使用呢?

  • 先回顾下在Objective-c中的使用
+ (instancetype)sharedInstance {
    static id _sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedInstance = [[self alloc] init];
    });
 
    return _sharedInstance;
}
  • Swift 中 苹果推荐使用方式是简单地使用一个静态类型属性,它保证只会初始化一次而且是懒加载的,即使在多个线程同时访问时也是这样。
class Singleton {
    static let sharedInstance = Singleton()
}
  • 如果你需要在初始化时做一些特别的设置,可以这样
class Singleton {
    static let sharedInstance: Singleton = {
        let instance = Singleton()
        // setup code
        return instance
    }()
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 南云3艘航母报销掉后,日军飞机也进行了反击,他们尾随美军返航轰炸机,发现了约克城号航母。这艘在珊瑚海战斗中受重伤的...
    阿中2016阅读 214评论 0 0
  • 对着电视机 我却在想你 笑意在脸上纷飞 欢喜在心底漫溢 难道你给我施了魔法? 我想起那罐 你送我的 相思树蜜 是你...
    非鱼lvvnaa阅读 328评论 0 1
  • 备注: A1标准: 1.要是自己过去的经历; 2.要聚焦在一个事件; 3.要具体,要是一个生动形象的描述,不要泛泛...
    亲子教育小六阅读 251评论 0 1