대부분 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
을 호출하면 UI가 NSView의 drawRect:
을 호출하여 NSView에 다시 그려 지도록 UI가 지시합니다. 나는 당신이 Objective-C를 처음 접했을 때부터 언급했기 때문에 이것을 깨닫지 못하고 결국 필요 이상의 코드를 작성하게됩니다. 이 디자인을 따르는 경우 타이머를 setNeedsDisplay
으로 주기적으로 호출 할 수 있습니다.
는 미안 충돌 보고서에서 얻을 오류는 이것이다 : 는 [mugalugAppDelegate drawView] : 인식 할 수없는 선택기는 방법의 권리를 찾을 수 없습니다 의미합니다 예를 로 전송? – FlimFlam