[Swift3.0]单例模式(学习)

swift 3.0中废弃了dispatch_once,这里只记录一个标准的单例写法,具体相关的内容,可以看看这篇文章;

[Swift3.0]单例模式(学习)_第1张图片
单例写法.png

代码:

import UIKit

class SingleOnce {

    // 单例
    static let shared = SingleOnce.init()
    private init(){}

    // 其他方法


}

这里将init方法私有化了,这样在其他地方就无法init,保证了单例的唯一性.

PS: 如果继承自其他类,init方法要加override关键字

使用:

[Swift3.0]单例模式(学习)_第2张图片
使用单例.png

如果,在外部调用init方法,会编译报错:

外部无法初始化.png

你可能感兴趣的:([Swift3.0]单例模式(学习))