2017-01-17 3 views
0

Я пытаюсь написать код, который ждет, пока переменная будет равна определенному значению. Вот код, который я написал:Swift: Как подождать, пока переменная будет иметь определенное значение?

var i = 0 

    for i in 1...10 { 
     playtrial() 
     repeat { 

     } while (WasItCorrect=="") 

    WasItCorrect = "" 
    } 

Идея заключается в том, что функция будет вызывать playtrial, подождите, пока переменная WasItCorrect не имеет значения (кроме «»), сброс WasItCorrect, а затем повторить (в общей сложности 10 раз).

Код не вызывает ошибок. Однако, после завершения plastral, программа, похоже, перестает отвечать на запросы и не позволяет добавлять новые кнопки ввода/кнопки.

Я предполагаю, что проблема в том, что мой цикл repeat/while продолжается навсегда и никогда не дает возможности для чего-либо еще, и поэтому другие функции, которые изменяют значение WasItCorrect, не могут выполняться. Как программист VisualBasic 6, который только начинает изучать Swift, я бы предположил, что мне понадобится Swift-версия DoEvents. Это правда?

Любые советы о том, как исправить этот код, будем очень благодарны.

ответ

1

Свойство переменной можно использовать didSet. Он будет вызываться всякий раз, когда значение изменится.

var i = 0 { 
    didSet { 
     print("Hello World.") 
     if i == certainValue { 
     // do something 
     } 
    } 
}