0

我注意到 [NSDate date] 从睡眠中醒来后不久就会返回旧日期和时间。我找不到有关此规范的任何信息,或者如何在醒来后刷新当前日期和时间。

有没有人有关于这种行为的任何信息?

4

2 回答 2

0

您是否保存NSDate在 ivar 中并在应用程序重新启动后检查它?如果是这种情况,那将是旧日期。

您可以重新初始化 ivar on viewWillAppear,或者在您的AppDelegate. 或者,您也可以将其设置为nil退出时。

于 2012-05-08T14:39:19.680 回答
0

也许尝试处理applicationSignificantTimeChange:应用程序委托方法或UIApplicationSignificantTimeChangeNotification通知。

applicationSignificantTimeChange:文档中:

如果您的应用程序当前处于挂起状态,则此消息将排队等待您的应用程序返回到前台,此时它会被传递。如果发生多个时间更改,则仅传送最近的一个。

可能您必须等到此时才能从 NSDate 类中获取准确的数据。您的视图可能加载得太早了。

然而,做这种事情可能会更好viewWillAppear:,我有一种感觉,如果你这样做,你可以避免处理重大的时间变化事件。

于 2012-05-08T15:09:10.183 回答