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
正如你可以看到,計時器調用dropBrick功能,一次0.3秒, 如果bBrickDropDone終於= YES(dropBrick功能修改爲yes,如果有事發生) 它會處理另一個函數MarkBrickBomb並繼續下去,直到bJobDone = YES,跳出循環!
我覺得我的代碼很糟糕,我不應該在while循環中檢查bBrickDropDone標誌,因爲它效率不高,也會花費很多資源!
我需要一個計時器,以得到一個動畫的UIImageView開關,買還是不喜歡 檢查完成標誌在while循環(這是不好的,我覺得),所以我能在這種情況下做 ?我能得到這個提示嗎?
而且,對不起,我的英語!