Какао и вылезая из бесконечных петель - PullRequest
1 голос
/ 14 августа 2010

Основная идея, которую я имею, состоит в том, чтобы нажать на одну кнопку и войти в бесконечный цикл.Я планирую нажать на другую кнопку, чтобы остановиться и выйти из этого цикла.Проблема в том, что когда я попадаю в бесконечный цикл, мой второй щелчок никогда не обнаруживается, поэтому я не могу выйтиЕсть идеи о том, как я могу заставить это работать?Спасибо за тонну.

-(IBAction) startButton {
  while (1) { 
    // code
  }     
}

-(IBAction) stopButton {
  NSLog(@" out of loop now");
}

Ответы [ 3 ]

2 голосов
/ 14 августа 2010

Если вы не можете использовать таймер, вам нужно использовать фоновый поток, NSOperation или задачу Grand Central Dispatch.

1 голос
/ 14 августа 2010

Почему бы не использовать NSOperation и NSOperationQueue ? Каждое отключение по циклу можно проверить, отменено ли оно и прервано ли. Таким образом, основной поток (в котором ваш пользовательский интерфейс обновляется и реагирует) не будет зависать, а ваше приложение не будет играть в мяч.

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

1 голос
/ 14 августа 2010

Что вы хотите, чтобы ваш цикл делал? Может быть, вы могли бы использовать NSTimer.

...