#ios #swift #static-variables #didset
#iOS #быстрый #статические переменные #дидсет
Вопрос:
Я пытаюсь использовать didSet
статическое наблюдаемое свойство, но оно не выполняет оператор if-else в didSet
. Вот этот код:
static var isCorrect: Bool = false {
didSet {
if isCorrect {
ViewController.theViewController.checkbox.image = UIImage(named: "tick")
} else {
ViewController.theViewController.checkbox.image = nil
}
}
}
static var theViewController = ViewController()
Все это находится в классе под названием ViewController
. Я изменяю isCorrect
переменную в другом классе контроллера представления и отклоняю ее после этого, но, похоже, это не работает.
Используемое checkbox
там свойство является переменной типа UIImageView
.
Я делаю что-то не так? Если да, то каков же правильный путь?
Комментарии:
1. Используете ли вы раскадровку для своего контроллера представления? Если да, то вы используете неправильный экземпляр вашего контроллера представления в didSet
2. Да, действительно.
3. Почему свойство должно быть статичным? Если бы это было не так, вы, вероятно, могли бы сделать
self.checkbox.image = ...
в didSet4. Потому что я меняю это в другом классе контроллера представления.
5. Теперь это работает, оказывается, что переменная ответа была жестко запрограммирована.