La signature de méthode pour drawView
est probablement incorrecte. À partir de la référence de classe NSTimer:
Le message à envoyer à la cible lorsque le temporisateur se déclenche. Le sélecteur doit avoir la signature suivante:
- (void)timerFireMethod:(NSTimer*)theTimer
Ainsi, votre méthode drawView
devrait ressembler à ceci:
- (void)drawView:(NSTimer*)theTimer
{
// Draw the view
}
En outre, corriger votre code pour être ce (notez les deux points suivants "drawView"):
animationTimer = [NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval)((1.0/60.0) * animationFrameInterval) target:self.delegate selector:@selector(drawView:) userInfo:nil repeats:TRUE];
Sur une note de côté, Je ne suis pas sûr de ce que votre drawView
est responsable (je suppose que dessiner une vue). Cependant, il existe des mécanismes intégrés pour le dessin, qui devraient être suivis (sauf dans de rares circonstances). Généralement, si vous avez un NSView, vous appelez le setNeedsDisplay
, ce qui obligera l'interface utilisateur à indiquer à votre NSView de se redessiner en appelant les numéros de votre NSView drawRect:
. Je ne mentionne que cela puisque vous avez dit que vous étiez nouveau à Objective-C, donc vous ne pouvez pas être au courant de cela, et finir par écrire plus de code que nécessaire. Si vous suivez cette conception, vous pouvez avoir votre minuteur appelez setNeedsDisplay
périodiquement.
Désolé l'erreur que je reçois dans le rapport de l'accident est la suivante: [mugalugAppDelegate drawView]: sélecteur non reconnu envoyé à l'instance Ce qui signifie qu'il ne peut pas trouver la bonne méthode? – FlimFlam