斯威夫特的单身人士

时间:2016-02-20 16:10:03

标签: ios swift design-patterns singleton

我第一次学习如何在Swift中实现Singleton Pattern在本书Pro Design Patterns in Swift中。

我开始实现Singleton Pattern的方式如下所示:

class Singleton {

    class var sharedInstance: Singleton {
        struct Wrapper {
            static let singleton = Singleton()
        }
        return Wrapper.singleton
    }

    private init() {
    }

}

但是在阅读Cocoa Design Patterns

时我发现了这个实现
class Singleton {

    static let sharedInstance = Singleton()

    private init() { 
    }

}

所以我的问题是,两种实现之间有什么区别?

1 个答案:

答案 0 :(得分:4)

回到 Swift 1 天,static let尚未实施。解决方法是创建一个包装器struct。使用 Swift 2 ,不再需要它了。