3
我正在使用NSTimer製作秒錶。如果用戶切換到不同的應用程序,我希望它繼續工作,但現在只有在應用程序正在運行時才能工作。我認爲這可能很簡單,通過在計時器啓動時錄製時間戳來修復,但我不確定如何使它與在中間暫停/重新啓動計時器的能力保持一致。如何製作持久性(多任務處理)秒錶?
我的代碼:
-(IBAction)start;
{
if(sharedInstance.timer == nil){
sharedInstance.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];
sharedInstance.timerRunning = YES;
}
}
-(IBAction)stop;
{
[sharedInstance.timer invalidate];
sharedInstance.timer = nil;
sharedInstance.timerRunning = NO;
}
-(void)showActivity;
{
sharedInstance.elapsedTime += 1;
int hours = sharedInstance.elapsedTime/3600 ;
int minutes = sharedInstance.elapsedTime/60 - hours * 60;
int seconds = sharedInstance.elapsedTime - hours * 3600 - minutes * 60;
sharedInstance.timeString = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
self.readout.text = sharedInstance.timeString;
}
-(void)viewDidLoad {
sharedInstance = [DataSingleton sharedInstance];
if (sharedInstance.timeString==nil) {
[email protected]"00:00:00";
}
self.readout.text = sharedInstance.timeString;
[sharedInstance.timer invalidate];
sharedInstance.timer = nil;
if(sharedInstance.timerRunning) {
[self start];
}
[super viewDidLoad];
}
-(void)reset {
[self stop];
sharedInstance.elapsedTime = 0;
sharedInstance.timeString = @"00:00:00";
self.readout.text = sharedInstance.timeString;
}
我可以看到你的DataSingleton是怎麼樣的? :) –