2012-04-25 21 views
0

可能重複:
Xcode: Why is my timer count 2 seconds on every tick?Xcode是加2,而不是1所有的時間

在我的應用我有一個計時器,應該從12:00到0:00,但它計數在每滴答像這個2秒時:

11.58 
11.56 
11.54 
11.52 and so on.. 

這是在啓動按鈕代碼代碼:

tid.text=[NSString stringWithFormat:@"%d:%.2d",minuter,sekunder]; 
timer= [NSTimer scheduledTimerWithTimeInterval:1.0 
       target:self 
       selector:@selector(tidklick) 
       userInfo:nil 
       repeats:YES]; 

這是方法tidklick:

-(void) tidklick 
{ 
    tiden -= 1; 
    sekunder = tiden % 60; 
    minuter= (tiden - sekunder)/60; 
    tid.text=[NSString stringWithFormat:@"%d:%.2d",minuter,sekunder]; 
} 

這是在一開始的代碼..

int tiden=720; 
int sekunder; 
int minuter; 

而且當我打了某個按鈕,這應該發生:i++;

但似乎i得到由2每次我打的,但時間增加噸....

有什麼不對? :S看起來像Xcode的東西,而不是我的代碼?

編輯:現在我注意到,當我按下按鈕應該停止在最後(定時器無效)定時器,它算作是正常的... ...它會將一次另一個在時間就是!

在此先感謝!

+1

發佈您的代碼。 – Kreiri 2012-04-25 17:36:40

+0

它太長了,所以它無論如何都不會檢查洞的東西:P,但我可以添加計時器部分。 – Mangy92 2012-04-25 17:38:15

+4

@ user1344659 2小時前你問了同樣的問題。 http://stackoverflow.com/questions/10318761/xcode-why-is-my-timer-count-2-seconds-on-every-tick – mttrb 2012-04-25 17:38:28

回答

0

對於這個問題,第二部分時,你打你的按鈕:你確信你的按鈕選擇不被調用兩次 - 當按鈕被按下的實例,然後再當它是舉起來。

+0

是的,我絕對相信! – Mangy92 2012-04-25 17:58:47

0

當你說你「按下按鈕」,什麼是你的按鈕打碼?有幾個事件發生在按鈕「擊中」(最顯着的是按鈕向下和向上的事件)上,如果您沒有正確處理,可能會在單次「擊中」中多次增加i

這也可能是定時器做下來通過兩個而不是一個理由 - 當你「打」你正在啓動兩個定時器,而不是一個啓動按鈕,每秒造成計時器1秒每遞減第二。

+0

這是一個按鈕裏面:) – Mangy92 2012-04-25 18:34:17

0

爲了更好的計算時間,請嘗試使用NSDate方法: [NSDate date]爲起始值,[NSDate timeIntervalSinceDate:startTime]從一開始就獲得時間偏移。

定時器點火間隔是大約等於至1秒。

+0

謝謝!但我不認爲這會改變,所以它只計算每次打勾一次的權利? – Mangy92 2012-04-25 17:59:32

相關問題