[Résolu] NSTimer perdu en route?
berfis
Membre
Bonjour!
J'essaie de dériver un objet contenant un NSTimer, mais ma classe dérivée ne reçoit pas le message.
@interface BasicObject : NSObject
@implementation BasicObject
-(BasicObject*)initWithID: (NSInteger)anID timerInterval:(NSTimeInterval)anInterval repeat:(BOOL)isRepeated
{
self = [BasicObject new];
self.ID = anID;
self.timer = [NSTimer scheduledTimerWithTimeInterval:anInterval target:self selector:@selector(tick userInfo:nil repeats:isRepeated];
return self;
}
- (void)tick:(NSTimer*)theTimer
{
[self hasTicked];
}
- (void) hasTicked; {NSLog(@tick...);}
@end
Voila pour la classe de base. Maintenant la classe dérivée:
@interface Duree5 : BasicObject
@implementation Duree5
- (Duree5*) initWithID: (NSInteger)anID
{
self.timeLimit = 5;
self = [super initWithID:anID timerInterval:1 repeat:YES];
return self;
}
- (void) hasTicked
{
NSLog(@Durée5 with ID %ld ticking., self.ID);
self.timeLimit--;
if (self.timeLimit<=0) {
NSLog(@Durée5 with ID %ld ended., self.ID);
}
}
@end
mais pas moyen que "hasTicked", pourtant un "override" complet, n'est jamais appelé (alors que la méthode abstraite l'est).
Pourquoi?
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est un peu le bazar ...