确定是否发生日变化

我想创build一个notifciation每当新的一天发生在本地(使用应用程序,或者如果它发生在启动之间)发生。 我想知道什么可能是观察这一变化的最好方法。

当您的应用程序正在运行时,您可以侦听UIApplicationSignificantTimeChangeNotification通知,并testing收到该通知的当天。 当您的应用程序退出时,您可以将当前date保存为您的偏好设置,当应用程序再次启动时,您可以testing当天的保存date。

您可以使用NSDateComponents获取有关当天的信息。

如另一个线程中提到的那样,从iOS8开始,您也可以直接收听NSCalendarDayChangedNotification。

退房: 埃里卡Sadun时间实用

有一些有用的方法来检查date。

或者,您可以查看UILocalNotifcations

您可以使用一天的repeatInterval来安排本地通知。

这一切都取决于你想要做什么,但这些是一些select。

我可能会做两件事情:

  1. 当应用程序正在运行时,将NSTimer设置为以给定间隔轮询当前date[NSDatedate]。 存储最后一个date的值(甚至在用户的默认值),然后比较新的时间和存储的时间来检查新的一天。

  2. closures/退出应用程序时,以上述相同的方式存储当前的date和时间。 然后,启动应用程序或将其带到前台时,检查当前date与存储的date。

NSDateComponents,NSCalendar和NSDate将派上用场。