2017-02-12 62 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