2012-11-28 6 views
1

foo 함수를 반복적으로 호출하고 싶지만 nstimer가 작동하지 않습니다. 제발 도와주세요.NSTimer가 작동하지 않는 이유는 무엇입니까?

@implementation abc 
-(id)init 
{ 
    [NSTimer scheduledTimerWithTimeInterval:(1/16) target:self selector:@selector(foo) userInfo:nil repeats:YES]; 
} 

입니다 내 주요

int main(int argc, char *argv[]) 
{ 
    abc *ab=[[abc alloc]init]; 



    [NSThread sleepForTimeInterval:100]; 


    [ab release]; 

    return 0; 
} 
+0

저는 스레딩에 익숙하지 않지만이 줄과 같은 문서를보고 있습니다 [NSThread sleepForTimeInterval : 100]; 메인 실행 루프에서 실행중인 모든 것을 차단합니다. 당신은 그 의견을 말하려고 했습니까, 아니면 시간 간격이 끝나기를 기다리고 있습니까? 그 라인의 목적은 무엇입니까? – Dcritelli

답변

6

그것은 작동하지 않습니다를 [NSTimer scheduledTimerWithTimeInterval:...] (reference) 상태 때문에 :

새 NSTimer를 만들고 반환합니다. 개체를 열고 기본 모드에서 현재 실행 루프에서 예약합니다.

... 그리고 에는 실행 루프이 없습니다.

예를 들어 NSApplication의 인스턴스 (즉, 적절한 Cocoa App)를 만들면이 작업이 가능합니다 (Cocoa App을 만들지 않고도 자신 만의 실행 루프를 만들 수는 있지만 상당한 금액입니다).).

-1

코드 행 (1.0/16 대신 1/16) 시도 :

[NSTimer scheduledTimerWithTimeInterval:(1.0/16) target:self selector:@selector(foo) userInfo:nil repeats:YES]; 
+0

여전히 작동하지 않습니다. – zzzzz

+0

을 1/16 = 0 및 1.0/16 = 0.0625로 지정하십시오. 그래서 타이머가 작동하지 않습니다. 기억하십시오 : float로 답변을 얻으려면 적어도 하나의 값이 float이어야합니다. – Siddiq

+0

trojanfoe의 대답을 참조하십시오. 실행 루프가 없어 작동하지 않습니다. – WDUK

관련 문제