Скажем, у меня есть следующий класс в Swift (который имеет очевидные проблемы)
class MyClass {
let myProperty: String
init() {
super.init()
self.setupMyProperty()
}
func setupMyProperty() {
myProperty = "x"
}
}
Это слишком упрощено, но я в основном пытаюсь делегировать инициализацию myProperty
в метод setupMyProperty()
. Это шаблон, который я часто использую для разбивки различных частей установки класса.
Но, конечно, я не могу вызвать self
до запуска супер инициализатора, и я не могу запустить супер инициализатор до тех пор, пока все свойства не будут установлены, поэтому я попал в ловушку 22. Наверх из него, поскольку setupMyProperty()
не считается инициализатором, он все равно не сможет назначить myProperty
.
Может ли кто-нибудь сказать мне, как реализовать этот шаблон в Swift?