iOS8 + swift : Create a true singleton class

标签 ios swift

<分区>

我正在 Swift 中创建一个单例类,如下所示:

class SingletonClass {

    class var sharedInstance: SingletonClass {
        struct Singleton {
            static let instance = SingletonClass()
        }

        return Singleton.instance
    }


    var a: Int?
    var b: Int?
    var c: Int?
}

这允许我从任何地方访问共享实例:

SingletonClass.sharedInstance

虽然这可行,但它并没有使这个实例成为整个系统中唯一可能的实例,这就是单例的全部意义所在。
这意味着我仍然可以创建一个全新的实例,如下所示:

let DifferentInstance: SingletonClass = SingletonClass()

并且共享实例不再是唯一的。

所以我的问题是:在 Swift 中有没有一种方法可以创建一个真正的单例类,在这个类中,系统范围内只有一个实例是可能的?

最佳答案

只需将您的初始化程序声明为私有(private)即可:

private init() {}

现在只能从同一文件中创建新实例。

关于iOS8 + swift : Create a true singleton class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892108/

相关文章:

ios - 将 unsigned long 转换为具有 2 精度十进制值的 float

swift - 为什么它不能转换类型的返回表达式?

android - Swift AES 加密抛出错误,而在 Android 中则不会

ios - iOS 中的字母间距

iphone - 是否可以将 CCLabel 添加到 CCSpriteBatchNode 中的 CCSprite?

iphone - 在 Monotouch 中正确处理 NSTimer

ios - 如何将数据传递到 tabbarcontroller 的第一个选项卡

ios - 在 swift 4 中将 UIImagePickerController 呈现给照片库后崩溃;隐私已添加到 info.plist

swift - 动态物体的 SceneKit 物理问题

ios - 在 uitableview 单元格上保持滑动以删除按钮打开然后返回会导致崩溃