Il est répète. NON si vous Je veux qu'il ne fonctionne qu'une seule fois. Vous avez des répétitions: OUI.
Il est [invalidate tim] et pas self.tim invalident
Do pas do self.tim = nul, car ce qui est de la diffuser. invalider fait tout. Pour mémoire, assurez-vous que votre propriété est correcte, par exemple
@property (nonatomic, retain) NSTimer * happyTimer;
et
@synthesize happyTimer;
Pour l'enregistrement, vous devez être sur le même sujet.
Espérons que cela aide.
Voici toutes les lignes de coupe de code à partir d'un exemple de production: travail
NSTimer *ttt;
@property (nonatomic, retain) NSTimer *ttt;
@synthesize ttt;
self.ttt = [NSTimer scheduledTimerWithTimeInterval:7.00
target:self selector:@selector(ringBell) userInfo:nil repeats:YES];
if ([ttt isValid])
[ttt invalidate];
[ttt release]; // in dealloc
Vous devez ajouter quelques lignes de débogage NSLog (@ « Je viens invalidés »); et ainsi de suite, pour vous assurer que vous n'avez pas d'erreur de base.
Je suppose que vous faites correctement, ne sais pas pourquoi NSTimer ne se termine pas un message invalidate .. est « tim » conformément aux définitions à retenir? ou copier? tout en déclarant la propriété – Sanniv
j'ai défini comme conserver dans la propriété .. Je dois attribuer une copie? –