Я написал класс утилиты 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
}()
.
.
.
Однако это решение выглядит довольно уродливо. Есть ли более чистый способ? Какой-то вид класс Обратный вызов инициализации Я могу использовать?
Почему бы вам не использовать одноэлементный класс? – Mohammadalijf
@Mohammadalijf Это всегда возможность. Но мне любопытно узнать, есть ли решение для всего лишь статического материала. –