Le chemin que j'ai accompli, c'était le stockage de la NSTimer tir date dans une variable et ensuite le réglage de la cuisson de la date à l'INFINI.
Quand je fais une pause:
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFiringDate = [timer firingDate];
[timer setFiringDate:INFINITY]
Quand j'ai relancer-je ajouter de la quantité de temps que le compte à rebours a été mis en pause pour le précédent tir date:
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
De ce fait, il est beaucoup plus facile que de s'inquiéter de l'invalider et à la réinitialisation de la minuterie. J'ai eu beaucoup de minuteries donc, je viens de les mettre tous dans un tableau et fait pour tous. Je sous-classé le NSTimer afin de garder la previousFiringDate associé avec de la minuterie.
C'était aussi mieux que d'utiliser un BOOLÉEN de savoir si ou non il a été suspendu de sorte actions n'aurait pas lieu si le BOOL a été défini. C'est parce que si quelque chose était sur le point d'arriver avant la pause, il ne se produit pas après vous relancer, parce que ça aura été simplement ignorées.