Objective c 是否可以在用户默认设置中保存计时器的状态?

Objective c 是否可以在用户默认设置中保存计时器的状态?,objective-c,iphone-sdk-3.0,nsuserdefaults,nstimer,Objective C,Iphone Sdk 3.0,Nsuserdefaults,Nstimer,我有一个显示倒计时计时器的标签 现在,如果我关闭我的应用程序,计时器将关闭,标签文本也将关闭。我知道我们可以保存标签的文本值。但是,当应用程序再次启动时,我们如何显示正确的倒计时 假设我在应用程序再次启动3分钟后在00:05:35关闭,标签应显示00:02:35,计时器应在那里等待剩余的倒计时是的,只需将应用程序关闭的时间和剩余的倒计时时间存储在NSUserDefault中即可。当应用程序再次启动时,您可以从NSUserDefaults获得关闭时间和剩余时间。使用当前时间是简单的数学计算倒数计时

我有一个显示倒计时计时器的标签

现在,如果我关闭我的应用程序,计时器将关闭,标签文本也将关闭。我知道我们可以保存标签的文本值。但是,当应用程序再次启动时,我们如何显示正确的倒计时


假设我在应用程序再次启动3分钟后在00:05:35关闭,标签应显示00:02:35,计时器应在那里等待剩余的倒计时

是的,只需将应用程序关闭的时间和剩余的倒计时时间存储在NSUserDefault中即可。当应用程序再次启动时,您可以从NSUserDefaults获得关闭时间和剩余时间。使用当前时间是简单的数学计算倒数计时剩余的正确时间

像这样的东西可能会奏效,当然,这是未经测试的:

// save state
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDate *now = [NSDate date];
double countDown = 45.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中即可。当应用程序再次启动时,您可以从NSUserDefaults获得关闭时间和剩余时间。使用当前时间是简单的数学计算倒数计时剩余的正确时间

像这样的东西可能会奏效,当然,这是未经测试的:

// save state
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDate *now = [NSDate date];
double countDown = 45.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"];

或者,您可以只计算您希望它过期的日期/时间,并将其保存在默认值中。重新启动时,请与该日期进行比较,以了解该日期是否已过期,或者是否需要设置计时器以捕获未来的过期日期。

或者,您可以只计算希望该日期过期的日期/时间,并将其保存在默认值中。重新启动时,请与该日期进行比较,以了解该日期是否已过期,或者您是否需要设置计时器以捕获未来的过期时间。

阅读该日期可能会有所帮助。这可能会对阅读有所帮助。