swift - 使用 Swift 单例

标签 swift singleton shared

我有以下单例类:

class Singleton {
    static let sharedInstance = Singleton()
}

我在网上几乎找不到关于如何使用单例模式的大量快速实现的信息。我之前在 Objective-C 中的一个应用程序中使用过它,但对我来说它似乎更直接。

例如,如果我想创建一个可以在应用程序中的任何地方使用的自定义对象数组,我将如何声明它以及如何实现它。在我的 objective-C Singleton 类中,我在类文件中创建全局变量,然后像这样实现它:

singletonClass *mySingleton = [singletonClass sharedsingletonClass];
mySingleton.whatever = "blaaaah"

感谢您的帮助!我也是这里的新手,也是 Swift 的新手。

最佳答案

有很多关于 Swift 中单例的信息。你有没有用你的谷歌实力看到这篇文章? http://krakendev.io/blog/the-right-way-to-write-a-singleton

但要回答您的问题,您可以简单地定义您想要正常使用的任何内容。

class Singleton {
    static let sharedInstance = Singleton() // this makes singletons easy in Swift
    var stringArray = [String]()

}

let sharedSingleton = Singleton.sharedInstance

sharedSingleton.stringArray.append("blaaaah") // ["blaaaah"]

let anotherReferenceToSharedSingleton = Singleton.sharedInstance

print(anotherReferenceToSharedSingleton.stringArray) // "["blaaaah"]\n"

关于swift - 使用 Swift 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865278/

相关文章:

swift - 如何将 UISearchController 与 SwiftUI 集成

javascript - 具有异步初始化的单例

flash - 验证 AS3 SharedObject 数据的属性是否存在

java - 当两个线程同时访问时,下面的代码将停止破坏单例

ios - 从 iOS 中使用 smb 本地访问 Windows/Mac 共享文件夹

linker - 共享库的相对路径

swift - 为什么是init(编码器:) being called when I provide an init() function

ios - 如何在 Swift 中扩展 Table View Cell 的高度?

ios - 可选类型 'Float?' 的值未展开;您是要使用 '!' 还是 '?' ?

c++ - thread_local 单例默认执行延迟初始化?