Или лучше инициализировать значение в методе жизненного цикла представления, таком как viewDidLoad
Это не "лучше". Это невозможно.
Вы не можете инициализировать self.myBoolean
своим вторым кодом:
override func viewDidLoad() {
self.myBoolean = false
}
К тому времени, когда мы доберемся до viewDidLoad
, любые переменные экземпляра, такие как self.myBoolean
, уже были инициализированы, потому что их нужно было инициализировать при создании self
, что уже произошло. Таким образом, по определению, ваш код не , инициализирующий self.myBoolean
; он перезаписывает свое уже существующее значение. Он был инициализирован ранее, каким-то другим способом.
Все хранимые переменные экземпляра должны иметь начальное значение, назначенное либо в той же строке, что и объявление, либо через init
. Другого пути нет, и ни один не эффективнее другого.