J'utilise actuellement l'extrait de code présenté ci-dessous pour déclencher certaines méthodes toutes les secondes. Mon application est en cours d'exécution en arrière-plan. Le problème est que si l'ordinateur se réveille après une période de sommeil, la minuterie veut déclencher rétroactivement toutes les méthodes qu'il a manqué. Des problèmes similaires se présentent si l'utilisateur devait modifier l'heure de l'horloge système.NSTimer: Obtenir le déclenchement pour NE PAS agir rétroactivement
Fondamentalement, je veux mettre en œuvre la méthode de minuterie appropriée qui aura mes méthodes appelées seulement toutes les secondes actuelles d. Si une seconde (ou une minute ou une heure ou un jour) s'est écoulée et que, pour une raison quelconque, les méthodes n'ont pas été appelées, je veux que mon application continue à partir du moment présent.
Aussi, pouvons-nous garder cela tout en utilisant NSTimer?
Merci!
-(void)start
{
NSTimer * timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(tasks:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode: NSDefaultRunLoopMode];
}
Mac uniquement, iOS uniquement ou les deux? –
@Dave, Mac seulement pour le moment. –