我正尝试在 Swift 中创建一个单例,但出现此错误:
initializer is inaccessible due to private protection level
这是我的代码(单例类)
class mySingleton{
private init() { }
static let sharedInstance = mySingleton()
var numbers = 0
func incrementNumberValue() {
numbers += 1
}
}
这是我调用单例的地方:
override func viewDidLoad() {
super.viewDidLoad()
let single = mySingleton().sharedInstance
}
这里是错误:
最佳答案
你的线路:
mySingleton().sharedInstance
有错别字。正如所写,您正在尝试创建 mySingleton
的实例,然后在新实例上调用 sharedInstance
方法。这是两个错误。
你真正想要的是:
mySingleton.sharedInstance
现在这会在您的 mySingleton
类上调用 sharedInstance
类型常量。
顺便说一句——类名应该以大写字母开头。方法和变量名称应以小写字母开头。
关于由于私有(private)保护级别,Swift 初始值设定项无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40076944/