【发布时间】:2017-04-12 18:50:08
【问题描述】:
所以我一直在研究如何在我的 iOS 应用中判断今天是否是新的一天。基本上,我想在新的一天开始时将一堆值重置为 0。我已经看到我可以使用在午夜发送通知的“UIApplicationSignificantTimeChangeNotification”。但是,如果用户在上午 9:00 关闭应用程序并在第二天上午 9:00 再次打开它,这仍然会触发吗?
我还看到我可以使用“NSCalendarDayChangedNotification”,据我了解它具有相同的行为。我唯一担心的是,即使在用户关闭应用程序之后,如果其中任何一个都能够检测到一天的变化。
理想情况下,我想在 viewDidLoad 中的 .m 文件顶部添加通知观察器,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetValues) name:UIApplicationSignificantTimeChangeNotification object:nil];
然后在文件的其他地方...
- (void)resetValues {
... // reset values to 0
}
目标是在每天更改开始时触发此通知。上面的代码会实现我正在寻找的行为吗?
【问题讨论】:
-
UIApplicationSignificantTimeChangeNotification仅在您的应用程序运行时有用。但请注意,除了午夜更改日期之外的其他原因也可以调用它。 -
我明白了,所以我最好的办法是创建当前日期的存储值,然后继续检查/覆盖它?
-
是的。你需要这样做。
标签: ios objective-c nscalendar