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()
}
相关推荐
开心就好20251 天前
iOS App 安全加固流程记录,代码、资源与安装包保护
后端·ios
开心就好20251 天前
iOS App 性能测试工具怎么选?使用克魔助手(Keymob)结合 Instruments 完成
后端·ios
zhongjiahao2 天前
面试常问的 RunLoop,到底在Loop什么?
ios
wvy3 天前
iOS 26手势返回到根页面时TabBar的动效问题
ios
RickeyBoy3 天前
iOS 图片取色完全指南:从像素格式到工程实践
ios
aiopencode4 天前
使用 Ipa Guard 命令行版本将 IPA 混淆接入自动化流程
后端·ios
二流小码农4 天前
鸿蒙开发:路由组件升级,支持页面一键创建
android·ios·harmonyos
iceiceiceice5 天前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios
ssshooter6 天前
Tauri 踩坑 appLink 修改后闪退
前端·ios·rust
二流小码农6 天前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos