Как перезаписать переменную
У меня есть кнопка
@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. тут дело вкуса
}
}