2010-07-30 88 views
2

我正在使用300秒後調用的NSTimer實例。該代碼是這樣的:NSTimer不重複計時器 - 檢索時間間隔

timer = [[NSTimer scheduledTimerWithTimeInterval:300 target:self selector:@selector(aMethod) userInfo:nil repeats:NO] retain]; 

我明白,因爲這是一個非重複的計時器,即[計時器一個時間間隔];返回0.是否有一種方法可以獲得流逝的時間?我需要使用經過的時間(比如說20秒),因爲當應用程序在iOS4中進入後臺時,計時器被暫停,並且我需要獲取計時器的運行時間,以便可以減去應用程序所在的elapsedTime +時間來自原始300的背景,並在超過時間時做些事情。

謝謝。

回答

3

保存當前時間 - 然後經過的時間是背景點減去該時間點的當前時間。

NSDate *timerStartTime = [NSDate date]; 

NSTimeInterval elapsed = [[NSDate date] timeIntervalSinceDate:timerStartTime];