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
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.
probablemente haría dos cosas:
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.
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.
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.
Como se menciona en el other thread, a partir de iOS8, también puede escuchar directamente NSCalendarDayChangedNotification.
- 1. ¿Se ha producido realmente OverflowError?
- 2. ¿Se ha producido un bloqueo de Google App Engine Python?
- 3. 'System.StackOverflowException' se ha producido en PresentationCore.dll
- 4. se ha producido un error de nivel de transporte
- 5. C1001: Se ha producido un error interno en el compilador
- 6. Rails ActiveSupport: ¿Cómo afirmar que se ha producido un error?
- 7. Tener un destructor tomar acciones diferentes dependiendo de si se ha producido una excepción
- 8. Cómo determinar si ob_start(); se ha llamado ya
- 9. ¿Cómo puedo determinar si un hilo de Win32 ha finalizado?
- 10. ha producido un error durante la inicialización de VM
- 11. Se ha producido un error de generación desconocido, 'Excepción del tipo' System.OutOfMemoryException '
- 12. ¿Alguien ha producido un repositorio de GIT en memoria?
- 13. ¿Cómo determinar cuándo se ha alcanzado el final del archivo?
- 14. ha producido un error al intentar utilizar Nservice bus
- 15. determinar si script de PowerShell ha sido punto de fuentes
- 16. JQuery: ¿Cómo determinar si se ha seleccionado un botón de opción?
- 17. ¿Cómo puedo determinar si ya se ha marcado un botón de opción?
- 18. ¿La mejor manera de determinar si un UIViewController se ha cargado y tiene una vista válida?
- 19. Creación de scripts en el shell: se ha producido un error
- 20. error de Android, se ha producido un error al configurar la aplicación superior
- 21. En la compra de la aplicación Se ha producido un error desconocido
- 22. Pruebas unitarias de que se ha producido un evento en C#
- 23. ¿Se ha producido un error de secuencia de bytes no válido en la entrada normalize_yaml_input?
- 24. C - Compruebe si se ha asignado un número entero
- 25. Cómo descubrir si algún día es un día de trabajo
- 26. cómo determinar si la página web ha sido modificada
- 27. Determinar si el contenido de un elemento HTML se desborda
- 28. Error de ASP.NET en Bitmap.Save "Exception (0x80004005): Se ha producido un error genérico en GDI +."
- 29. Registros Rellenar con: Se ha producido un error de comunicación con el host remoto
- 30. Cómo atrapar correctamente una SqlException: Se ha producido un error en el nivel de transporte