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()
}
相关推荐
鸿蒙布道师1 小时前
鸿蒙NEXT开发文件操作相关工具类(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
leonyie20221 小时前
3.1 在 AppDelegate 或 SwiftUI Lifecycle 中配置权限请求
ios·swiftui·cocoa
1024小神20 小时前
在swiftui中使用实现类似微信右上角的功能菜单
ios
北京自在科技1 天前
iOS 18.4修复多个核心安全漏洞,间接增强Find My服务的数据保护能力
科技·ios·iphone·蓝牙·find my·北京自在科技
货拉拉技术1 天前
iOS货运用户App组件路由器设计与实践
ios·架构
布多1 天前
iOS分类中的关联对象:如何用运行时突破Category的存储限制
ios·面试·源码
鸿蒙布道师2 天前
鸿蒙NEXT开发数值工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
程序员老刘2 天前
谨慎升级macOS 15.4,规避 ITMS-90048 错误
flutter·macos·ios
90后的晨仔2 天前
iOS 蓝牙开发基础知识梳理
ios
一牛2 天前
Metal 进阶:读取可绘制对象的像素
ios·swift·计算机图形学