0
인사말 !!While 루프의 NSTimer
다음과 같은 코드가 내가 뭐하는 거지 지금 :
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
당신이 볼 수 있듯이, 만약 한 번에 0.3 초, bBrickDropDone 마침내 = YES 경우 이 (dropBrick 기능이 수정을위한 타이머 호출 dropBrick 기능 YES something happen) 다른 함수 MarkBrickBomb을 처리하고 bJobDone = YES가 될 때까지 계속 진행하면서 루프를 벗어납니다!
내 코드가 좋지 않다고 생각합니다. while 루프에서 bBrickDropDone 플래그를 확인하면 안됩니다. 효율성이 떨어지고 비용도 많이 들기 때문에 !!
나는, 그래서이 경우 을 무엇을 할 수 여전히 (이, 내가 좋은 생각되지 않음) 동안 루프에서 완료 플래그를 확인 을 좋아하지 않아 구매하기, 애니메이션 UIImageView에 스위치를 얻을 수있는 타이머를해야합니까? 이것에 대한 힌트를 얻을 수 있을까요?그리고 내 영어로 유감스럽게 생각합니다 !!