NSDate日期在醒来后不返回当前日期和时间

时间:2012-05-08 14:31:32

标签: objective-c ios

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

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

2 个答案:

答案 0 :(得分:0)

您是否将NSDate保存在ivar中并在重新启动应用后进行检查?如果是这样的话,这将是旧日期。

您可以在viewWillAppear上重新初始化ivar,或在AppDelegate中执行此操作。或者,您也可以在退出时将其设置为nil

答案 1 :(得分:0)

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

来自applicationSignificantTimeChange:文档:

  

如果您的应用程序当前已暂停,则此邮件将排队   直到你的应用程序返回到前台,此时它就是   交付。如果发生多个时间变化,则只有最近的变化   递送

可能需要等到这一点才能从NSDate类获得准确的数据。您的观点可能过早加载。

viewWillAppear:中做这种事情可能更好,但我觉得如果你这样做,你可以避免处理重大的时间变化事件。