我正在尝试在Swift中创建一个单例,但是我收到了这个错误:
由于私有保护级别,初始化程序无法访问
这是我的代码(单件类)
class mySingleton{
private init() { }
static let sharedInstance = mySingleton()
var numbers = 0
func incrementNumberValue() {
numbers += 1
}
}
这是我打电话给单身人士的地方:
override func viewDidLoad() {
super.viewDidLoad()
let single = mySingleton().sharedInstance
}
这是错误:
答案 0 :(得分:10)
你的专栏:
mySingleton().sharedInstance
有拼写错误。如上所述,您尝试创建mySingleton
的实例,然后在新实例上调用sharedInstance
方法。这是两个错误。
你真正想要的是:
mySingleton.sharedInstance
现在,这会调用sharedInstance
类的mySingleton
类型常量。
BTW - 预计类名以大写字母开头。方法和变量名称应以小写字母开头。
答案 1 :(得分:0)
用于按实例对象使用
mySingleton类{
private init() { }
static let sharedInstance = mySingleton()
var sharedInstanceByInstance: mySingleton{
return mySingleton.sharedInstance
}
//Usage: mySingleton().sharedInstanceByInstance
// or
func getShared()-> mySingleton{
return mySingleton.sharedInstance
}
//Usage: mySingleton().getShared()
}