当前位置:  开发笔记 > IOS > 正文

什么是在Swift的Singleton类中阻止init()实例的最佳实践

如何解决《什么是在Swift的Singleton类中阻止init()实例的最佳实践》经验,为你挑选了1个好方法。

我从使用Swift with Cocoa和Objective-C中学到了可以像这样创建单例:

class Singleton {
    static let sharedInstance = Singleton()
}

但是,据我所知,我们还应该阻止从构造函数创建的实例.应该阻止在类范围外创建类Singleton的实例,如下面的语句:

let inst = Singleton()

那么,我可以这样做:

class Singleton {
    static let sharedInstance = Singleton()
    private init() {}
}

或者,有没有更好的做法?



1> Jacob Joz..:

你建议的方式是我总是实现它的方式.

public class Singleton
{
    static public let sharedInstance = Singleton();

    private init()
    {

    }
}

这是我发现的Singleton模式最干净的解决方案.现在在Swift 2中你可以指定它实际上阻止你调用类似的东西:

var mySingleton = Singleton();

这样做会导致编译时错误:

'Singleton' cannot be constructed because it has no accessible initializers

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有