由于私有保护级别,Swift初始化程序无法访问

use*_*482 4 singleton swift

我正在尝试在Swift中创建一个单例,但是我收到了这个错误:

由于私有保护级别,初始化程序无法访问

这是我的代码(单例类)

class mySingleton{

    private init() {    }
    static let sharedInstance = mySingleton()
    var numbers = 0

    func incrementNumberValue() {
        numbers += 1
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我打电话给单身人士的地方:

override func viewDidLoad() {
    super.viewDidLoad()
    let single = mySingleton().sharedInstance
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

在此输入图像描述 你们中的任何人都知道为什么或如何解决这个错误?

rma*_*ddy 10

你的路线:

mySingleton().sharedInstance
Run Code Online (Sandbox Code Playgroud)

有一个错字.如上所述,您正在尝试创建一个实例,mySingleton然后sharedInstance在新实例上调用该方法.这是两个错误.

你真正想要的是:

mySingleton.sharedInstance
Run Code Online (Sandbox Code Playgroud)

现在,这会调用sharedInstance类上的类型常量mySingleton.

BTW - 预计类名以大写字母开头.方法和变量名称应以小写字母开头.