确定日期是否发生变化。

9

我希望创建一个通知,每当本地发生新的一天(无论是在使用应用时还是在启动之间发生)时都会触发。我想知道观察这种变化的最佳方法可能是什么。

4个回答

14

当您的应用程序正在运行时,可以监听UIApplicationSignificantTimeChangeNotification通知,并在接收到通知时测试当前日期。当您的应用程序退出时,可以将当前日期保存到您的偏好设置中,当应用程序再次启动时,可以将保存的日期与当前日期进行比较。

您可以使用NSDateComponents获取有关当前日期的信息。


7

如在另一篇问答中所提到的,从iOS8开始您也可以直接监听NSCalendarDayChangedNotification。


1

请查看: Erica Sadun 时间实用工具

这里有一些有用的方法可以用来检查日期。

或者,您可以查看UILocalNotifications

您可以使用重复间隔为一天的本地通知进行安排。

所有这些都取决于您想要做什么,但这些是一些选项。


0

我可能会做两件事:

  1. 当应用程序运行时,设置一个NSTimer以在给定的时间间隔内轮询当前日期[NSDate date]。将上次日期的值存储在某个地方(甚至可以在用户默认设置中),然后将新时间与存储的时间进行比较,以检查是否有新的一天。

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

NSDateComponents、NSCalendar和NSDate对此非常有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接