En Cocoa, ¿hay alguna notificación que me pueda registrar, que me informe, cuando comience un nuevo día, a las 00h: 00min: 01s de la mañana?¿Puedo recibir una notificación cuando comience un nuevo día?
Respuesta
No hay ninguna notificación que yo sepa. Usted puede obtener un temporizador para disparar cada vez que un nuevo día comienza de esta manera:
[[NSTimer alloc] initWithFireDate:midnight
interval:60 * 60 * 24 //one day, in seconds
target:someObj
selector:@selector(someSelector)
userInfo:nil
repeats:YES];
El truco es conseguir un conjunto NSDate
a la medianoche. Compruebe el Date and Time Programming Guide para saber cómo hacer eso con los componentes de fecha y similares.
EDITAR: vea this pregunta de cómo llegar a la medianoche NSDate
.
Si es para el desarrollo de iPhone, también puede escuchar un UIApplicationSignificantTimeChangeNotification. Se publica en más ocasiones que la llegada de la medianoche, pero cuando recibes uno, simplemente puedes verificar si estás cerca de la medianoche.
Para Mac OS X, tendría que hacer lo que sugiere Tom Dalling, pero también debe hacer un seguimiento de changes to the system clock (para actualizar su temporizador) así como changes to the current time zone.
A partir de iOS8, también puede escuchar NSCalendarDayChangedNotification directamente.
¡Gracias! Esto también está disponible en Mac OS X, a partir de 10.9 (Mavericks). Mucho mejor que tener que crear un NSTimer. – robotspacer
Según lo mencionado por otros, en iOS 8 puede usar NSCalendarDayChangedNotification. En términos de cómo hacer eso, este post le brinda más información.
Esencialmente NSCalendarDayChangedNotification requiere que usted vaya a su archivo AppDelegate e insertar el código de abajo en la aplicación (adaptado de guía para Swift 3):
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.dayChangedOperations(notif:)), name:NSNotification.Name.NSCalendarDayChanged, object:nil)
Donde "ViewController" es el nombre de clase de una de mis clases y "dayChangedOperations" es el nombre de la función que quiero ejecutar cada vez que cambia el día.
COUNT días desde el último cambio
Tenga en cuenta que todo lo que se obtiene de esto es una alerta de que el día ha cambiado. No se le da el número de días desde la última ejecución de la aplicación. Así que recuerde guardar la fecha en un userDefault cada vez que se ejecute esta función, para que pueda usarla para compararla más adelante.
- 1. Cómo recibir una notificación cuando se notifica una notificación
- 2. Cómo recibir una notificación cuando NSWindow se cierra
- 3. Recibir una notificación cuando se selecciona la pestaña actual nuevamente
- 4. ¿Cómo puedo recibir una notificación cuando se completa una tarea dispatch_async?
- 5. ¿Cómo puedo recibir una notificación cuando se crea una nueva ventana en Win32?
- 6. ¿Cómo recibir una notificación de luz LED?
- 7. ¿Cómo recibir una notificación cuando un usuario cambia la contraseña o solicita un restablecimiento de contraseña?
- 8. ¿Cómo publicar y recibir una notificación?
- 9. ¿Dónde y cómo registro un objeto para recibir una Notificación?
- 10. Recibir notificación cuando se cambió el valor de RegistryKey
- 11. Objetivo C: recibir una notificación cuando se llame a un método
- 12. ¿Se puede recibir una notificación cuando un UITableView termine de desplazarse?
- 13. Recibir notificación de eliminación/destrucción de objetos
- 14. ¿Hay alguna manera de recibir una notificación cuando cambie mi propiedad UIImageView.image?
- 15. Cómo puedo recibir una notificación si una columna DataGrid está ordenada (y no ordenada)
- 16. Obtenga una notificación cuando DTE.ActiveDocument cambie
- 17. ¿Cómo puedo recibir notificaciones cuando se visualice UIView?
- 18. ¿Recibe una notificación cuando el usuario carga un cubo S3?
- 19. ¿Cómo recibir una notificación cuando el estado de SMS cambia de 'En cola' a 'Enviado'?
- 20. Recibir notificación sobre una terminación de proceso Java
- 21. ¿Cómo recibir notificaciones cuando una ventana se enfoca en WPF?
- 22. ¿Notificación cuando cambia un archivo?
- 23. Notificación de Delphi cuando se actualiza un archivo
- 24. notificación de angularJS cuando se elimina un elemento
- 25. Recibir una notificación cuando una nueva unidad está conectada a través de USB u otros medios (C#)
- 26. Obtenga una notificación cuando se agregue algo a NSPasteboard
- 27. Obtener una notificación/evento/señal cuando un widget Qt obtiene el foco
- 28. Recibir notificaciones cuando la aplicación actual cambie en Cocoa
- 29. ¿Cómo puedo incluir un botón en una notificación de Toast?
- 30. ¿Cómo puedo recibir un JSON en Symfony2
+1 Nunca antes había escuchado sobre esta notificación. ¡Gracias! –
Gracias a ambos por las respuestas. Parece que solo puedo aceptar uno de ellos y aún no votarlo. Desafortunadamente es para Mac OS X - UIApplicationSignificantTimeChangeNotification habría sido exactamente lo que estaba buscando .. –