我注意到[NSDate date]在从睡眠中醒来后很快就会返回旧的日期和时间。我无法找到有关此规范的任何信息,或者如何刷新后的当前日期和时间。
有没有人有关于这种行为的任何信息?
答案 0 :(得分:0)
您是否将NSDate
保存在ivar中并在重新启动应用后进行检查?如果是这样的话,这将是旧日期。
您可以在viewWillAppear
上重新初始化ivar,或在AppDelegate
中执行此操作。或者,您也可以在退出时将其设置为nil
。
答案 1 :(得分:0)
也许尝试处理applicationSignificantTimeChange:
应用委托方法或UIApplicationSignificantTimeChangeNotification
通知。
来自applicationSignificantTimeChange:
文档:
如果您的应用程序当前已暂停,则此邮件将排队 直到你的应用程序返回到前台,此时它就是 交付。如果发生多个时间变化,则只有最近的变化 递送
可能需要等到这一点才能从NSDate类获得准确的数据。您的观点可能过早加载。
在viewWillAppear:
中做这种事情可能更好,但我觉得如果你这样做,你可以避免处理重大的时间变化事件。