我想创建一个在本地新的一天发生时发生的通知(在使用应用程序时,或者在启动之间发生)。我想知道观察这种变化的最佳方法是什么。
答案 0 :(得分:14)
当您的应用程序正在运行时,您可以收听UIApplicationSignificantTimeChangeNotification通知,并在收到该通知时测试当天。当您的应用退出时,您可以将当前日期保存到您的偏好设置,当应用再次启动时,您可以针对当天测试保存的日期。
您可以使用NSDateComponents获取有关当天的信息。
答案 1 :(得分:7)
正如other thread中提到的,从iOS8开始,您也可以直接收听NSCalendarDayChangedNotification。
答案 2 :(得分:1)
退房: Erica Sadun Time Utililties
有一些有用的方法可以检查日期。
或者您可以查看UILocalNotifcations
您可以使用一天的repeatInterval安排本地通知。
这一切都取决于你想做什么,但这些都是一些选择。
答案 3 :(得分:0)
我可能会做两件事:
当应用程序正在运行时,将NSTimer设置为以给定间隔轮询当前日期[NSDate日期]。存储最后一个日期的值(即使在用户默认值中),然后将新时间与存储时间进行比较以检查新的一天。
关闭/退出应用时,请按照上述相同的方式存储当前日期和时间。然后,在启动应用程序或将其带到前台时,请根据存储的日期检查当前日期。
NSDateComponents,NSCalendar和NSDate将派上用场。