我正在學習Mac OS X編程。我的第一個項目是寫一個簡單的秒錶。我知道你可以使用NSTimer,但是我認爲如果我所有的工作都是我自己的,我會學得更多。該應用程序工作正常。但重啓後秒錶,它跳過每秒數..恢復定時器後,定時器的計數快兩倍
下面的代碼:
- (IBAction)stop:(id)sender {
started = FALSE;
NSLog(@"Stop pressed: %i", started);
}
- (IBAction)start:(id)sender {
if(!started){
started = TRUE;
[self tock:nil];
}
else {
started = FALSE;
}
}
- (void) tock:(id)sender {
if(started == TRUE) {
seconds++;
};
[self performSelector:@selector(tock:) withObject:(self) afterDelay:(1.0)];
_anzeige.stringValue = [NSString stringWithFormat:(@"%i"), seconds];
}
當您在hitti之間等待2秒時,您是否看到該行爲ng停止,然後再次啓動?看起來你至少還會在碰到停止點後排隊等待,這會在1秒後觸發,導致步驟開始,然後啓動過程。如果你在不到一秒的時間點擊開始,你將在隊列中有2個,並且他們將分別射擊並單獨重生。 – gaige 2013-03-27 10:05:53
http://stackoverflow.com/questions/6873627/how-to-implment-laps-in-stop-watch-iphone-app – 2013-03-27 10:33:18
我認爲你是對的。看起來就像它排隊......直接恢復後你很快看到閃爍的缺失數字..幾秒鐘後,你看到每個數字,但intervall更短...我如何需要更改代碼?是的,我知道你可以做不同的事情,但我想知道這種方式的缺陷..我仍然在學習 – Korg 2013-03-27 10:33:42