确定是否发生了日期更改

时间:2011-11-04 21:48:11

标签: iphone objective-c ios cocoa-touch date

我想创建一个在本地新的一天发生时发生的通知(在使用应用程序时,或者在启动之间发生)。我想知道观察这种变化的最佳方法是什么。

4 个答案:

答案 0 :(得分:14)

当您的应用程序正在运行时,您可以收听UIApplicationSignificantTimeChangeNotification通知,并在收到该通知时测试当天。当您的应用退出时,您可以将当前日期保存到您的偏好设置,当应用再次启动时,您可以针对当天测试保存的日期。

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

答案 1 :(得分:7)

正如other thread中提到的,从iOS8开始,您也可以直接收听NSCalendarDayChangedNotification。

答案 2 :(得分:1)

退房: Erica Sadun Time Utililties

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

或者您可以查看UILocalNotifcations

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

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

答案 3 :(得分:0)

我可能会做两件事:

  1. 当应用程序正在运行时,将NSTimer设置为以给定间隔轮询当前日期[NSDate日期]。存储最后一个日期的值(即使在用户默认值中),然后将新时间与存储时间进行比较以检查新的一天。

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

  3. NSDateComponents,NSCalendar和NSDate将派上用场。