Вопрос

В моем приложении у меня есть ibaction, и внутри у меня есть 2 разные инструкции с «если»

 if (i == 0)  //do instruction set 1
 if (i == 1) //do instruction set 2
 // and everytime I push button i change from 0 to 1 or from 1 to 0

Проблема в том, что если я неоднократно нажимаю кнопку этой iBaction, она не работает нормально, потому что предыдущий iBaction не завершил свой набор инструкций1

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

Ты понимаешь?

Это было полезно?

Решение

Предполагая, что у вас есть BOOL workInProgress переменная в вашем классе:

- (IBAction)action {
    if (!workInProgress) {
        workInProgress = YES;
        if (i == 0) {
            // do something that in the end sets workInProgress to NO
        } else if (i == 1) {
            // do something else that in the end sets workInProgress to NO
        }
    }
}

Другие советы

Используйте значение Bool, установите его на NO при начале вашего набора инструкций и верните к да после. Если значение нет, то не делайте ни одного

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top