这很奇怪,我敢肯定我在这里遗漏了一些基本的东西。
我所拥有的是
- 两个 UIButton:button1、button2
- Touchdown button1 有一个名为 startAction 的 IBAction
- Touchdown button2 有一个名为 cancelAction 的 IBAction
- 在故事板中创造了这一切
发生的事情是,当我按下 button1 时,for 循环开始。在此 for 循环结束之前,我无法再按屏幕上的任何按钮,即我无法按下按钮 2。
我怎样才能做到这一点,当我按下button1时,我仍然可以通过按下button2来取消button1的for循环动作。这是我的代码
static bool scanCancelled = NO;
-(IBAction)startAction
{
for (int i=0; i<5000; i++)
{
NSLog(@"i: %d ...", i);
if (scanCancelled == YES)
{
break;
}
}//end for-loop
}
-(IBAction)cancelAction
{
scanCancelled = YES;
}
对于任何对未来感兴趣的人,我就是这样做的
-(IBAction)startAction2
{
//reset it
scanCancelled = NO;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
[self startAction];
});
}