これはかなり奇妙で、ここで基本的な何かが欠けていると確信しています。
私が持っているのは
- 2 つの UIButton: button1、button2
- Touchdown button1 には startAction という IBAction があります
- Touchdown button2 には cancelAction という IBAction があります
- ストーリーボードでこれらすべてを作成しました
button1 を押すと、for ループが開始されます。この for ループが終了するまで、画面上のボタンをこれ以上押すことはできません。つまり、button2 を押すことはできません。
ボタン1を押したときに、ボタン2を押してボタン1の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];
});
}