2017-02-12 6 views
0

私のコードで何か変わったことが起こったのはなぜか分かりませんでした。なぜsingletoneクラスの値がnilですか?

印刷結果はnilにここ

が、私はそれは非常に単純でやったことは常にある

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

は 'のvar condition'が宣言されていますが、初期化されていません。非オプションを使用すると、コンパイラはあなたに思い出させます。 – vadian

答えて

1

あなたね

class ConditionHolder { 

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

} 

またはこの:このようconditionプロパティを初期化するためのED

class ConditionHolder { 

    static let instance = ConditionHolder() 

    let condition: Condition 

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

} 
+0

2番目のオプションでは、 'condition'はオプションである必要はありません。 – rmaddy

+0

@rmaddy¡uops!コピー&ペーストエラー、ありがとう! – mhergon

関連する問題