Как перезаписать переменную

У меня есть кнопка

@IBAction func pushPauseButton(_ sender: Any) {
 Structure.status = 1
}

и структура

struct Structure {
    static var status = 0    
}

При нажатии на кнопку я хочу перезаписать переменную status в структуре на 1, чтобы передавать ее в другие функции как флаг.

Почему значение status остается = 0 а не перезаписывается?


Ответы (2 шт):

Автор решения: schmidt9

Проверьте правильно ли вы используете static var, здесь все изменяется как надо

struct Structure {
    static var status = 0
}

Structure.status = 1

print(Structure.status) // prints 1

Structure.status = 10

print(Structure.status) // prints 10

func test(_ value: Int) {
    print(value) // prints 5
}

Structure.status = 5

test(Structure.status)
→ Ссылка
Автор решения: Marat

Флаги можно и эффективней по памяти хранить в поле класса (например UIViewController). Тогда при деинициализации контроллера память освободится, в отличии от static var. Попробуй

class ViewController : UIViewController {
    var status: Int = 0    

    @IBAction func pushPauseButton(_ sender: Any) {
       self.status = 10   // можно и без self. тут дело вкуса
    }
}

→ Ссылка