Неявно развернутые дополнительные параметры по-прежнему являются дополнительными.Если они могут использоваться как обычные дополнительные функции, они будут.
Вы можете принудительно развернуть развертывание, просто объявив необязательный тип:
let situation: Situation = SituationHandler().shared.situation
или добавив !
явно:
let situation = SituationHandler().shared.situation!
Обратите внимание, что:
SituationHandler().shared.situation
не имеет никакого смысла.shared
всегда новый экземпляр.Чтобы иметь синглтон, вам необходимо:
class SituationHandler {
var situation: Situation!
static let shared = SituationHandler()
}
, а затем:
SituationHandler.shared.situation
Также я бы посоветовал использовать значение по умолчанию вместо IUO:
class SituationHandler {
var situation: Situation = .bad
static let shared = SituationHandler()
}