任何人都可以解释一下swift中的静态变量与java中的静态变量之间的区别吗?java中的静态变量与静态变量之间的区别
我知道Java中的静态函数在分配内存时执行,而不是在为对象创建实例时执行。我试图在swift中创建一个singleton,我看到我的ViewController viewDidLoad函数中调用getInstance()的函数在我的静态变量被填充之前执行,因此我返回nil值。
我该如何解决这个问题?我应该找到一个“初始化器”类的函数,其中所有类的分配和初始化发生,所以这个工作顺利吗?
请告知
我加入一个代码片段相同
class X {
var xInstance:X = X()
public static func getInstance() { return xInstance }
}
class Y {
var xInstance: X?
var yInstance: Y = Y()
public override init() {
xInstance = X.getInstance()
public static func getInstance() {
return yInstance
}
}
class someView: UIView {
public override init() {
var xInstance = X.getInstance() //This is my problem area. I am seeing nil for xInstance
}
}
我看到零值xInstance。我究竟做错了什么?
你能展示一些代码吗?据我所知,没有太大区别。 – Peyman