我編寫了一個Swift實用類,我在其中定義了幾個靜態方法和一個私有靜態常量。但是,我希望這個常數在第一次被引用之後立即加載,而不是懶洋洋地。我能想到這樣做的唯一的事情是引用靜態常量在這樣的每一個靜態函數:如何防止Swift中靜態變量的延遲加載
private static let myObserver: Observer = {
let observer = Observer(actionToPerform: foo1)
SomeOtherClass.register(observer)
return observer
}()
static func foo1() {
_ = myObserver
...
}
static func foo2() {
_ = myObserver
...
}
static func foo3() {
_ = myObserver
...
}
//even more of a hassle:
static let myIntConstant: Int = {
_ = myObserver
return 5
}()
.
.
.
然而,該解決方案看起來很醜陋。有更清潔的方法嗎?某種類初始化回調我可以使用?
爲什麼不使用singleton類呢? – Mohammadalijf
@Mohammadalijf這總是一種可能性。但我很想知道是否有靜態解決方案。 –