定時器將23小時,格式爲00:00:00(小時:分:秒),所以當按下按鈕時,定時器將開始倒計時23小時,我希望這是由NSUserDefaults保存,以便每當我退出應用程序或切換到另一個視圖控制器時,剩餘時間仍然存在。NSTimer和NSUserDefaults
在h。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDate *now = [NSDate date];
double countDown = 82800.0; // in seconds, get this from your counter
[userDefaults setObject:now forKey:@"timeAtQuit"];
[userDefaults setDouble:countDown forKey:@"countDown"];
[userDefaults synchronize];
// restore state
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDate *timeAtQuit = [userDefaults objectForKey:@"timeAtQuit"];
double timeSinceQuit = [timeAtQuit timeIntervalSinceNow];
double countDown = timeSinceQuit + [userDefaults doubleForKey:@"countDown"];
誰能告訴我如何將NSUserDefault有機結合起來:單位爲m:
-(void) timerRun {
secondCount = secondCount - 1;
int hours = (secondCount/ 3600) % 24;
int minuts = (secondCount/60) % 60;
int seconds = secondCount % 60;
NSString *timerOutput = [NSString stringWithFormat:@"%2d:%.2d:%2d", hours, minuts, seconds];
countdownLabel.text = timerOutput;
}
-(void) setTimer {
secondCount = 82800;
countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerRun) userInfo:nil repeats:YES];
}
- (IBAction)start:(id)sender {
[self setTimer];
}
這裏定時器
@interface ViewController : UIViewController {
IBOutlet UILabel *countdownLabel;
NSTimer *countdownTimer;
int secondCount;
}
- (IBAction)start:(id)sender;
代碼是相關的NSUserDefaults的代碼定時器以及代碼的放置位置,以便計時器在退出ap後可以運行摺疊或去另一個視圖控制器
請幫助
我很抱歉,我不明白你的代碼 – Katie
你必須有標籤和按鈕作爲觸發櫃檯上一個更簡單的方法,並且能夠節省it @ozgur – Katie
然而,我確信有更簡單的方法,總是最好將應用程序中的不同功能保留在彼此之外,以便您的代碼更具可讀性和可理解性。 – ozgur