2017-02-12 8 views
0

В моем коде что-то странное происходит Я не мог понять, почему.Почему значение singleletone class равно нулю?

результат печати всегда ноль

Вот что я сделал это очень просто

ConditionHolder.instance.condition?.type = ConditionType.fixed 
ConditionHolder.instance.condition?. ifoDateAndTime = dateTime 
print("conditonvc1=\(ConditionHolder.instance.condition?.type)") 
print("conditonvc2=\(ConditionHolder.instance.condition?.ifoDateAndTime?)") 

и вот мой класс

class ConditionHolder { 

    static let instance = ConditionHolder() 

    var condition: Condition? 
} 

И Состояние класс

class Condition { 

    var ifoDateAndTime: IFODateTime? 
    var period: Period? 
    var type: String? 
} 
+0

'вар condition' объявлена, но не инициализирована. Используйте не факультативный, тогда компилятор вам напомнит. – vadian

ответ

1

Вы не ред инициализировать condition свойство как это:

class ConditionHolder { 

    static let instance = ConditionHolder() 
    let condition = Condition() 

} 

или это:

class ConditionHolder { 

    static let instance = ConditionHolder() 

    let condition: Condition 

    init() { 
     self.condition = Condition() 
    } 

} 
+0

В вашем втором варианте «условие» необязательно быть необязательным. – rmaddy

+0

@rmaddy ¡uops! скопируйте и вставьте ошибку, спасибо! – mhergon

Смежные вопросы