Swift创建单例

Objective-C使用GCD 中的dispatch_once_t 可以保证里面的代码只被调用一次,以此保证单例在线程上的安全。

但是在Swift 中由于废弃了原有的Dispatch once方法,因此无法使用once 进行单例的创建。

我们可以使用struct 存储类型变量,并且使用let保证线程安全的方式

(1)方案1

Swift 复制代码
class Manager {
    class var sharedManager: Manager {
        struct Static {
            static let sharedInstance: Manager = Manager()
        }
        return Static.sharedInstance
    }
}

(2)方案2

Swift 复制代码
class Manager {
    class var sharedManager: Manager {
        return sharedInstance
    }
}

private let sharedInstance = Manager()

(3)方案3

Swift 复制代码
class Manager {
    static let sharedInstance = Manager()
}
相关推荐
SameX1 小时前
存钱 App 开发手记:restitution 0.3 是怎么试出来的,以及 86400 秒不等于一天
ios
MonkeyKing4 小时前
蓝蓝牙核心基础概念详解:2.4GHz频段、跳频、信道、广播、连接、配对
android·ios
鹤卿1235 小时前
Masonry
macos·ios·cocoa
JoyCong19985 小时前
开启iPad创造力!装上它平板能当电脑用
ios·电脑·ipad
WaywardOne21 小时前
一.iOS Objective-C Runtime 原理
前端·ios
WaywardOne21 小时前
二.iOS内存管理
前端·ios·面试
星辰即远方1 天前
UITableView操作拓展
macos·ios·xcode
秋雨梧桐叶落莳1 天前
iOS——Masonry约束内容整理
开发语言·学习·macos·ios·objective-c·cocoa
pop_xiaoli1 天前
【iOS】类和分类的加载
macos·ios·objective-c·cocoa