2012-05-29 3 views
0

코드를 계속 실행하는 책임이있는 "업데이트 방법"의 왕이있는 앱을 만들고 있습니다. 나는 그것이 무한 반복 할 수있는 옵션을 가지고 있기 때문에 NSTimer을 사용하는 것을 생각했다.NSTimer가 호출되지 않습니다

gameTimer = [NSTimer timerWithTimeInterval:0.01428 target:self selector:@selector(GameUpdate:) userInfo:NULL repeats:true]; 

GameUpdate: 선언과 같이 인 경우 : 나는 같은로드가

-(void)GameUpdate:(NSTimer*)timer; 

건이며, GameUpdate: 내부의 코드는 결코 실행되지 않습니다. 그것은 xcode 4.2에서 사용되었습니다. 왜 이런거야?

+1

b.t.w. 스타일 제안 : 클래스 메소드 이름은 항상 소문자로 시작해야합니다 (예 : "gameUpdate :'"). 클래스 이름은 대문자로 시작해야합니다. –

+0

좋아, 그냥 내가 찍은 나쁜 습관이 발생합니다. – rdelfin

답변

0

새로 만든 NSTimer 개체를 실행 루프에 추가해야합니다.

(lifted from the answer to this related question는) : the docs 바와 같이 말한다 : 실행 루프와 함께

타이머 작동합니다. 타이머를 효과적으로 사용하려면 실행 루프가 어떻게 작동하는지 알고 있어야합니다. NSRunLoop 및 스레딩 프로그래밍 가이드를 참조하십시오. 특히 실행 루프는 타이머를 으로 유지하므로 실행 루프 에 타이머를 추가 한 후 해제 할 수 있습니다.

관련 질문에 대한 다른 답변을 보면 실행 루프에 자동으로 추가되는 NSTimer 개체를 만드는 방법을 알 수 있습니다.

+1

감사합니다. NSRunLoop을 직접 사용할 필요는 없지만 제공 한 질문에 대한 링크에서 답변을 보았습니다. 그냥 타이머 대신 예약 된 타이머 여야했습니다. – rdelfin

관련 문제