Я быстро научился. При первых впечатлениях я не вижу какой-либо точки объявления константы (без начального сохраненного значения) как необязательного в классе... например
let userName: String?
потому что инициализатор по умолчанию присваивает ему значение nil, и впоследствии он не сможет быть изменен (поскольку его константа).
Как я понимаю, пользовательский инициализатор все еще может присвоить ему значение non-nil, но в этом случае вы просто не объявите его как let userName: String
(то есть не необязательным)
Я бы ожидал, что если бы это был избыточный шаблон, который яблоко бы упомянуло об этом, но я не могу видеть, что они... поэтому в каких ситуациях будет использоваться или полезно какое-либо необязательное объявление константы?