我希望创建一个通知,每当本地发生新的一天(无论是在使用应用时还是在启动之间发生)时都会触发。我想知道观察这种变化的最佳方法可能是什么。
我希望创建一个通知,每当本地发生新的一天(无论是在使用应用时还是在启动之间发生)时都会触发。我想知道观察这种变化的最佳方法可能是什么。
当您的应用程序正在运行时,可以监听UIApplicationSignificantTimeChangeNotification通知,并在接收到通知时测试当前日期。当您的应用程序退出时,可以将当前日期保存到您的偏好设置中,当应用程序再次启动时,可以将保存的日期与当前日期进行比较。
您可以使用NSDateComponents获取有关当前日期的信息。
请查看: Erica Sadun 时间实用工具
这里有一些有用的方法可以用来检查日期。
或者,您可以查看UILocalNotifications
您可以使用重复间隔为一天的本地通知进行安排。
所有这些都取决于您想要做什么,但这些是一些选项。
我可能会做两件事:
当应用程序运行时,设置一个NSTimer以在给定的时间间隔内轮询当前日期[NSDate date]。将上次日期的值存储在某个地方(甚至可以在用户默认设置中),然后将新时间与存储的时间进行比较,以检查是否有新的一天。
关闭/退出应用程序时,以与上述方式相同的方式存储当前日期和时间。然后,在启动应用程序或将其带到前台时,检查当前日期与存储的日期。
NSDateComponents、NSCalendar和NSDate对此非常有用。