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()
}
相关推荐
pop_xiaoli42 分钟前
【iOS】通知传值实现
macos·ios·xcode
2601_9557674243 分钟前
iPhone 17 屏幕偏振光学解析与保护贴技术选择——悟赫德观复盾护景贴
人工智能·科技·ios·ar·iphone·圆偏振光
qq3621967052 小时前
手机App下载安装完全指南:2026最新教程(Android & iOS)
android·ios·智能手机
核电机组2 小时前
IOS原生APP集成Flutter
flutter·ios
亘元有量-流量变现3 小时前
预算有限怎么投?iOS ASO与ASA优劣对比及精细化联动增长策略
ios·用户运营·aso优化·亘元有量·方糖试玩
Mr -老鬼4 小时前
EasyClick iOS自动化7.1.0新版本详解
ios·自动化·easyclick
2501_916007475 小时前
不用 Mac 也可以 Windows下管理iOS描述文件的非Xcode完整指南
android·ios·小程序·https·uni-app·iphone·webview
Mr_CrazyPeter21 小时前
【无标题】
ios·模拟器·ons
yuananyun1 天前
APP 图标规范与设计全攻略:iOS/Android/Web 一次设计多端合规,快速出图
android·前端·ios
niech_cn1 天前
uniapp开发App(iOS、Android、鸿蒙Next)之配置pages.json 页面路由(三)
android·ios·uni-app