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