Скорее всего, подпись метода для drawView
неверна. Из справки класса NSTimer:
Сообщение для отправки в цель, когда срабатывает таймер . Селектор должен иметь следующую подпись:
- (void)timerFireMethod:(NSTimer*)theTimer
Таким образом, ваш метод drawView
должен выглядеть следующим образом:
- (void)drawView:(NSTimer*)theTimer
{
// Draw the view
}
Кроме того, исправить код, чтобы быть (обратите внимание на двоеточие следующее «drawView»):
animationTimer = [NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval)((1.0/60.0) * animationFrameInterval) target:self.delegate selector:@selector(drawView:) userInfo:nil repeats:TRUE];
На боковой ноте, Я не уверен, за что отвечает ваш drawView
(я бы предпочел рисовать представление). Однако существуют встроенные механизмы рисования, которые должны соблюдаться (за исключением редких обстоятельств). Обычно, если у вас есть NSView, вы вызываете setNeedsDisplay
, что приведет к тому, что пользовательский интерфейс скажет NSView перерисовать себя, вызвав ваш NSView drawRect:
. Я упоминаю об этом только после того, как вы сказали, что новичок в Objective-C, поэтому вы можете не знать об этом и в конечном итоге написать больше кода, чем вам нужно. Если вы будете следовать этому дизайну, вы можете периодически звонить по телефону setNeedsDisplay
.
К сожалению ошибки я получаю в отчете об аварии заключается в следующем: [mugalugAppDelegate drawView]: непризнанный селектор направил к экземпляру Это означает, что не может найти правильный метод? – FlimFlam