方式1(静态常量)

class MyClass {

    static let shared = MyClass()
    private init() { }
}
简洁的不要不要,我最喜欢使用此方式实现单例

方式2(内部结构体)

class MyClass {

    static var shared: MyClass {

        struct Static {
            static let sharedInstance = MyClass()
        }

        return Static.sharedInstance;
    }

    private init() { }
}
看起来是方式1的复杂版(变异版),在开发中我基本上不使用过此方式

方式3(全局变量)

fileprivate let sharedInstance = MyClass()
class MyClass {

    static var shared: MyClass {
        return sharedInstance
    }

    fileprivate init() { }
}

本文由 Harvey 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论