1

我的基本想法是单击一个按钮并进入无限循环。我打算单击另一个按钮停止并退出此循环。麻烦的是,一旦我进入无限循环,我的第二次点击就永远不会被检测到,所以我无法退出。关于如何让它发挥作用的任何想法?万分感谢。

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

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

3 回答 3

2

如果不能使用计时器,则需要使用后台线程,NSOperation或 Grand Central Dispatch 任务。

于 2010-08-13T22:15:36.200 回答
1

你想让你的循环做什么?也许你可以使用一个NSTimer.

于 2010-08-13T21:08:33.443 回答
1

为什么不使用NSOperation 和 NSOperationQueue?每次通过循环,你可以检查它是否被取消和中断。这样一来,主线程(您的 UI 更新和响应的线程)就不会冻结,您的应用程序也不会沙滩球。

要意识到的重要一点是,如果您将主线程捆绑在一个循环中,那么在循环结束之前您将不会获得更多事件,这意味着没有按钮单击取消。

于 2010-08-13T23:41:28.847 回答