pmb
pmb

Reputation: 2327

why singletone class value is nil?

In my code something strange happening I couldn't understand why.

Print result is always nil

Here is what I did it is very simple

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

and here's my class

class ConditionHolder {

   static let instance = ConditionHolder()

    var condition: Condition?
}

And Condition class

class Condition {

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

Upvotes: 0

Views: 54

Answers (1)

mhergon
mhergon

Reputation: 1678

You need to initialize condition property like this:

class ConditionHolder {

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

}

or this:

class ConditionHolder {

    static let instance = ConditionHolder()

    let condition: Condition

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

}

Upvotes: 1

Related Questions