Другие здесь предложили установить начальные значения для var
. Хотя это означает меньше опций, проблема здесь в том, что легко забыть установить var
, что может привести к сложностям в диагностике проблем.
Я предпочитаю private
неявно развернутые опции, например
private var number: [String]!
private (set) var someBool: Bool! // private (set) makes it visible but not setable
, а затем configure
функция на каждом контроллере представления (или на любом объекте, созданном из раскадровки пера), например,
configure(number: [String], someBool: Bool) {
self.number = number
self.someBool = someBool
}
Развернутые опции могут потерпеть крах при использовании, если не установлены, и, поскольку они являются закрытыми, они не могут быть случайно обновлены извне самого класса.