self.timerProgress=[NSTimer scheduledTimerWithTimeInterval:50.0 target:self selector:@selector(stopProgressView) userInfo:nil repeats:NO];
-(void)stopProgressView
{
if ([self.timerProgress isValid]) {
[self.timerProgress invalidate];
self.timerProgress=nil;
}
}
et sur un bouton clic lorsque j'ai essayé d'invalider l'objet NSTimercomment invalider NSTimer?
-(void)cancelTimer
{
if ([self.timerProgress isValid]) {
[self.timerProgress invalidate];
self.timerProgress=nil;
}
}
il ne soit pas invalide. Il appelle une fois stopProgressView après l'intervalle de 50. Comment obtenir une résolution de ce problème?
"Il appelle une fois stopProgressView après l'intervalle de 50" - Je ne peux pas donner de sens à cette question. Aussi, quel "problème"? –
votre code utilisant n'est pas un problème dans votre code.Put votre schedTimeWithTimeInterval: 5 secondes pas 50 pour tester votre code @ H2CO3 est juste –
Je ne comprends pas ce que vous essayez de faire dans 'stopProgressView', le' sélecteur 'pour votre minuterie: Vous créez une minuterie qui est non récurrente et quand elle se déclenche (la seule et unique fois qu'elle se déclencherait), vous l'invalidez. Pourquoi s'embêter? Dans 'cancelTimer', bien, mais inutile dans' stopProgressView'. En réponse à votre question sur la raison pour laquelle 'cancelTimer' ne semble pas fonctionner, avez-vous essayé le breakpoint/log dans cette méthode? Êtes-vous sûr que ça s'appelle? (Ce n'est pas un 'IBAction', donc je me méfie.) En conclusion, c'est la bonne façon d'invalider, donc ça ne doit pas être appelé. – Rob