Подождите, пока пользователь коснется внутри цикла - PullRequest
0 голосов
/ 27 марта 2012

Можно ли ждать прикосновения пользователя внутри цикла while?Я имею в виду, если у меня есть вид с кнопкой «Готово» внутри, и у меня есть цикл, подобный следующему:

while (ending == FALSE) {
    ...
    /* Do something */ 
    ...

    /* WAIT for user to touch "Finish" button and when this occurs, set ending=TRUE so the loop can finish */

    ...
    /* Do something more*/
    ...
}

Я думал сделать это с другим циклом while, как это:

while (myVar == FALSE) {
    /* Do nothing */
}

И изменить действие кнопки, чтобы изменить обе переменные («окончание» и «myVar»), но я думаю, что это не самое эффективное решение, и оно будет занимать много памяти или ЦП?

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Добавить комментарий в качестве ответа, если он работает.

Не могли бы вы использовать NSTimer. В основном, установите время, скажем, 10 секунд (даже не нужно быть таким длинным) и просто сделайте его LOOP, а когда пользователь делает какое-то событие, просто аннулируйте время, как [theTimer invalidate]. Затем вы можете сообщить пользователю, сколько времени им потребовалось, чтобы пройти туда

0 голосов
/ 27 марта 2012

Я совершенно уверен, что ваш цикл while фактически остановит вашу программу и не позволит получить никаких касаний.Если вам действительно нужно что-то сделать (например, обновить экран) в ожидании нажатия кнопки, вы можете использовать NSTimer для периодической активации метода.Когда кнопка нажата, она вызовет соответствующий ответ в какой-то момент, когда ваш метод обновления не работает ни для чего другого.Если то, что вам нужно сделать во время ожидания, не связано с пользовательским интерфейсом, вы можете рассмотреть возможность сделать это в другом потоке вместо периодического обновления nstimer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...