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()
}
相关推荐
m0_4955627813 小时前
Swift-GCD和NSOperation
ios·cocoa·swift
二流小码农14 小时前
鸿蒙开发:this的指向问题
android·ios·harmonyos
马拉萨的春天15 小时前
iOS的事件响应链
macos·ios·cocoa
猪哥帅过吴彦祖19 小时前
Flutter 系列教程:应用导航 - Navigator 1.0 与命名路由
android·flutter·ios
2501_9160088920 小时前
iOS 跨平台开发实战指南,从框架选择到开心上架(Appuploader)跨系统免 Mac 发布全流程解析
android·macos·ios·小程序·uni-app·iphone·webview
鹏多多20 小时前
flutter图片选择库multi_image_picker_plus和image_picker的对比和使用解析
android·flutter·ios
Kapaseker2 天前
Swift 构建 Android 应用?它来了
ios·swift
Digitally2 天前
11种方法解决iPhone上共享相册不显示的问题[2025]
ios·iphone
Swift社区2 天前
iOS 基于 Foundation Model 构建媒体流
ios·iphone·swift·媒体