Приветствие !!
Следующие коды сейчас я делаю:
BOOL bJobDone = NO ;
bBrickDropDone = NO ; //global var here !!
NSTimer* timer = nil ;
while(bJobDone==NO)
{
if(timer == nil)
{
timer = [NSTimer scheduledTimerWithTimeInterval:0.3
target:self
selector:@selector(dropBrick:)
userInfo:nil
repeats:YES];
}
if(bBrickDropDone==YES)
{
bBrickDropDone = NO ;
[timer invalidate] ;
timer = nil ;
if([self MarkBrickBomb]==YES)
{
bJobDone = NO ;
[self dealBomb] ;
if([self AllClean]==YES)
{
bJobDone = YES ;
igameidx = igameidx + 1 ;
}
}else
{
bJobDone = YES ;
}
}//if(bBrickDropDone==YES)
}//while bJobDone==NO
Как видите, таймер вызывает функцию dropBrick один раз в течение 0,3 секунды, если bBrickDropDone наконец =ДА (функция dropBrick заменит это значение на ДА, если что-то случится), она обработает другую функцию MarkBrickBomb и будет работать до тех пор, пока bJobDone = ДА, не выйдет из цикла !!
Мне кажется, мой код паршивый, я не должен проверять bBrickDropDoneфлаг в цикле while, поскольку он неэффективен, а также требует значительных ресурсов !!
Мне нужен таймер для получения анимированного переключателя UIImageView, купить Еще не нравится проверять флаг done в цикле while(я думаю, это плохо), что я могу сделать в этом случае?Могу ли я получить подсказку для этого?
И, простите за мой английский !!