Oren Edrich
Oren Edrich

Reputation: 674

Error with integer

This is my code to disable buttons on a view controller if an integer is below a certain amount.

if (plancnt.value(forKey: "plancnt") != nil){
        plancnt.set(1, forKey: "plancnt")
    }
if (plancnt.integer(forKey: "plancnt") <= 1) {
        two.isEnabled = false
        three.isEnabled = false
        four.isEnabled = false
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 2) {
        three.isEnabled = false
        four.isEnabled = false
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 3) {
        four.isEnabled = false
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 4) {
        five.isEnabled = false
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 5) {
        six.isEnabled = false
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 6) {
        seven.isEnabled = false
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 7) {
        eight.isEnabled = false
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 8) {
        nine.isEnabled = false
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 9) {
        ten.isEnabled = false
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 10) {
        elleven.isEnabled = false
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 11) {
        twelve.isEnabled = false
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 12) {
        thirteen.isEnabled = false
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 13) {
        fourteen.isEnabled = false
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 14) {
        fifteen.isEnabled = false
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 15) {
        sixteen.isEnabled = false
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 16) {
        seventeen.isEnabled = false
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 17) {
        eighteen.isEnabled = false
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 18) {
        nineteen.isEnabled = false
        twenty.isEnabled = false
    }
    if (plancnt.integer(forKey: "plancnt") <= 19) {
        twenty.isEnabled = false
    }

However when i write

plancnt.set(20, forKey: "plancnt")
    plancnt.synchronize()

all of the button except button one are disabled. Im not sure if my greater than/less than signs are wrong or something else, please help.

Upvotes: 0

Views: 100

Answers (3)

Oren Edrich
Oren Edrich

Reputation: 674

In the starboard file unclick the "enabled" button and type this under the viewdidload

if (plancnt.integer(forKey: "plancnt") >= 1) {
        one.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 2) {
        two.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 3) {
        three.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 4) {
        four.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 5) {
        five.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 6) {
        six.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 7) {
        seven.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 8) {
        eight.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 9) {
        nine.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 10) {
        ten.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 11) {
        elleven.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 12) {
        twelve.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 13) {
        thirteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 14) {
        fourteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 15) {
        fifteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 16) {
        sixteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 17) {
        seventeen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 18) {
        eighteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 19) {
        nineteen.isEnabled = true
    }
    if (plancnt.integer(forKey: "plancnt") >= 20) {
        twenty.isEnabled = true
    }

Upvotes: 0

Rahul
Rahul

Reputation: 104

Do something like this:

var buttons = [one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen,sixteen,seventeen,eighteen,nineteen,twenty]
        let i: Int = plancnt.value(forKey: "plancnt")
        for index in i..<buttons.count {
            print("\(index)")
            buttons[index].isEnabled = false
        }

Upvotes: 0

Code Different
Code Different

Reputation: 93181

Because all you did were to disable buttons, you never reenable them when plancnt changes. And your code gives me a headache. Try something like this:

if plancnt.value(forKey: "plancnt") == nil {
    plancnt.set(1, forKey: "plancnt")
}

let buttons = [one, two, three, ..., twenty]
let cnt = plancnt.integer(forKey: "plancnt")

for i in 0..<buttons.count {
    buttons[i].isEnabled = i < cnt
}

Upvotes: 2

Related Questions