[Swift基础语法入门]代码讲解何为单例

Method 1

class DemoClass{
    //1
    class var sharedInstance:DemoClass{
        //2
        struct Static {
            static var onceToken:dispatch_once_t = 0
            static var instance:DemoClass? = nil
        }
        //3
        dispatch_once(&Static.onceToken){
            // 4
            Static.instance = DemoClass()
        }
        return Static.instance!
    }
}

Method 2

// 方法二
class DemoClass2{
    //1
    class var sharedInstance:DemoClass2{
        //2
        struct Static {
            static let instance = DemoClass2()
        }
        //3
        return Static.instance
    }
}

Method 3

// 方法三
class DemoClass3{
    class var sharedInstance:DemoClass3{
        return sharedInstance3
    }
}
private let sharedInstance3 = DemoClass3()

Method 4

class DemoClass4{
    static let sharedInstance = DemoClass4()
}

参考

THE RIGHT WAY TO WRITE A SINGLETON
Swift Singleton Design Pattern

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 10,045评论 0 23
  • 出发: 九九是个站在宇宙中心呼唤爱的女孩,特别喜爱小动物,但是在饮食上,她却无肉不欢。年少读书期间,食堂的每一顿饭...
    CAICHIARA阅读 409评论 0 2
  • 如果一个演员能拒绝特效的提议,硬生生增肥56斤,再用5个月的集中训练减了回去。那还愁票房吗?
    Lzyyyyyyy_阅读 268评论 0 0