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()
}
相关推荐
鹤卿1234 小时前
(OC)UI学习——网易云仿写
ui·ios·objective-c
不自律的笨鸟4 小时前
最新屏蔽 iOS 系统更新描述文件保姆级教程
ios
开心猴爷5 小时前
Flutter 如何自动上传 可以 IPA 把构建和上传分开处理
后端·ios
秋雨梧桐叶落莳9 小时前
iOS——QQ音乐仿写项目总结
学习·macos·ui·ios·mvc·objective-c·xcode
iUNPo11 小时前
WWDC26 技术解读:Apple Intelligence、Siri AI 与苹果生态的下一步
macos·ios·wwdc
代码的小搬运工12 小时前
【iOS】谓词与正则表达式
ios
恋猫de小郭12 小时前
解析华为 DevEco Code 和小米 MiMo Code,都基于 OpenCode ,有什么区别?
android·前端·ios
wjm0410061 天前
ios内存管理
ios·objective-c·swift·客户端开发
黑科技iOS上架1 天前
ios应用被封号后再次上架很难么?
经验分享·ios
柚鸥ASO优化1 天前
一篇讲透安卓ASO!开发者千万别只盯着iOS了
android·ios·aso优化