2011-11-04 15 views
9

Me gustaría crear una notificación que se produzca cada vez que se produzca un nuevo día localmente (ya sea al utilizar la aplicación o si se produce entre lanzamientos). Me preguntaba cuál podría ser la mejor manera de seguir observando este cambio.Determinar si se ha producido un cambio de día

Respuesta

13

Mientras su aplicación se está ejecutando, puede escuchar la notificación UIApplicationSignificantTimeChangeNotification y probar el día actual cuando lo reciba. Cuando se cierra la aplicación, puede guardar el día actual según sus preferencias, y cuando la aplicación se inicia nuevamente, puede probar el día guardado en comparación con el día actual.

Puede obtener información sobre el día actual usando NSDateComponents.

0

probablemente haría dos cosas:

  1. Mientras que la aplicación se está ejecutando, tener un conjunto NSTimer para sondear la fecha actual [fecha NSDate] en un intervalo dado. Almacene el valor de la última fecha en algún lugar (incluso en los valores predeterminados del usuario) y luego compare la nueva hora con la hora almacenada para verificar si hay un nuevo día.

  2. Al cerrar/salir de la aplicación, almacene la fecha y hora actual de la misma manera anterior. Luego, cuando lance la aplicación o la ponga en primer plano, verifique la fecha actual con la fecha almacenada.

NSDateComponents, NSCalendar y NSDate resultarán útiles para esto.

1

Salida: Erica Sadun Time Utililties

Hay algunos métodos útiles allí para comprobar fechas.

Alternativamente se puede ver en UILocalNotifcations

podría programar una notificación local con un repeatInterval de un día.

Todo depende de lo que quieras hacer, pero esas son algunas opciones.

7

Como se menciona en el other thread, a partir de iOS8, también puede escuchar directamente NSCalendarDayChangedNotification.

Cuestiones relacionadas