IOS: ibaction с двумя действиями
Вопрос
В моем приложении у меня есть 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 при начале вашего набора инструкций и верните к да после. Если значение нет, то не делайте ни одного