Swift - 使用单例管理共享资源(译)

770 阅读1分钟

概要

当需要全局访问某类的实例时,可以给该类创建单例。你可以创建自己的单例,以提供对 app 中共享的资源或服务的统一访问点,例如用于播放音效的音频通道或用于发出 HTTP 请求的 network manager。

创建单例

你可以通过 static 类型属性来创建一个简单的单例,即使同时多个线程访问,该属性也只会被初始化一次:

class Singleton {
    static let sharedInstance = Singleton()
}

如果你需要在初始化阶段需要额外的设置步骤,你可以将给它赋值一个闭包:

class Singleton {
    static let sharedInstance: Singleton = {
        let instance = Singleton()
        // setup code
        return instance
    }()
}

*原文链接