2015-05-31 26 views
0

我正在使用NSTimer調用標題爲「丟失」的方法。我有一個計時器,當它用完時,它稱爲Lose,但由於硬盤驅動器錯誤,我失去了一切。在嘗試再次編碼之後,我似乎無法調用該方法。爲什麼我的NSTimer在到期時不會調用我的方法?

Timer = [NSTimer timerWithTimeInterval:timeMax target:self selector:@selector(Lose) userInfo:nil repeats:NO]; 

失去我的.h文件中聲明,如下所示:

-(void)Lose; 

而且,我的方法是這樣的:

-(void)Lose{ 

Text.hidden = NO; 
scoreLabel.hidden = NO; 
Target.hidden = YES; 
Targetx.hidden = YES; 


if (Score > highScoreNumber) { 
    highScoreAchieved.hidden = NO; 
    highScoreNumber = Score; 
    } 

} 

變量timeMax是宣佈一個int我.h文件,就像上次一樣。每當在我的遊戲中點擊一個目標,timeMax就會變短0.03秒。我這樣做:

timeMax = 5 - (Score * 0.03); 

我不記得它在大規模硬件故障之前看起來不同,但爲什麼它不工作?

+1

請花時間閱讀[objective-c命名約定](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Conventions/Conventions.html#//apple_ref/ DOC/UID/TP40011210-CH10-SW1)。 –

+0

分數的價值是什麼? 「timeMax」是否有可能是負值? –

+0

@lead_the_zeppelin timeMax從5開始,當按下開始按鈕時。分數從0開始。 – Yugaman

回答

3

你必須安排在一個運行循環定時器或使用此行,而不是它的時間表爲你:

Timer = [NSTimer scheduledTimerWithTimeInterval:timeMax 
             target:self 
             selector:@selector(Lose) 
             userInfo:nil 
             repeats:NO]; 

這也是一個好主意,經常備份你的代碼......這讓我想起。

相關問題