2017-02-12 64 views
0

在我的代码中发生了一些奇怪的事情,我无法理解为什么。为什么singletone类的价值是零?

打印结果总是零

这是我做的是非常简单的

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

在第二个选项中,'condition'不需要是可选的。 – rmaddy

+0

@rmaddy¡uops!复制并粘贴错误,谢谢! – mhergon