我正在Swift中创建一个单例类,如下所示:
class SingletonClass {
class var sharedInstance: SingletonClass {
struct Singleton {
static let instance = SingletonClass()
}
return Singleton.instance
}
var a: Int?
var b: Int?
var c: Int?
}
Run Code Online (Sandbox Code Playgroud)
这允许我从任何地方访问共享实例:
SingletonClass.sharedInstance
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但它并不能使这个实例成为整个系统中唯一可能的实例,这就是单身人士所关注的.
这意味着我仍然可以创建一个全新的实例,例如:
let DifferentInstance: SingletonClass = SingletonClass()
Run Code Online (Sandbox Code Playgroud)
并且共享实例不再是唯一的实例.
所以我的问题是:在Swift中有没有办法创建一个真正的单例类,其中只有一个实例可以在系统范围内进行?
dre*_*wag 14
只需将初始化程序声明为私有:
private init() {}
Run Code Online (Sandbox Code Playgroud)
现在只能在同一个文件中创建新实例.
| 归档时间: |
|
| 查看次数: |
1941 次 |
| 最近记录: |