2012-05-26 4 views
32

내 앱이 시작될 때 메소드를 호출 한 다음 5 초마다 동일한 메소드를 호출해야합니다.NSTimer를 즉시 트리거하는 방법은 무엇입니까?

내 코드는 매우 간단하다 :

// Call the method right away 
[self updatestuff:nil] 

// Set up a timer so the method is called every 5 seconds 
timer = [NSTimer scheduledTimerWithTimeInterval: 5 
              target: self 
             selector: @selector(updatestuff:)  
             userInfo: nil 
             repeats: YES]; 

가 바로 트리거의 다음 5 초마다 있도록 타이머 옵션이 있습니까?

답변

65

NSTimer-fire, [timer fire];입니다.

시간 지연을 해제하는 타이머를 즉시 시작하거나 호출합니다.

13

타이머를 예약하고 이벤트를 동일한 코드 줄에서 즉시 실행할 수 없습니다. 따라서 코드 2 줄로 처리해야합니다.

먼저, 다음 즉시 타이머에 '불'을 호출, 타이머 예약 :

timer = [NSTimer scheduledTimerWithTimeInterval: 5 
             target: self 
            selector: @selector(updatestuff:)  
            userInfo: nil 
            repeats: YES]; 
[timer fire]; 

화재가 호출 될 때, 당신의 타이머가 화재로 대기하는 시간 간격이 그냥 도망 때문에 재설정 한 다음합니다 이후 지정된 간격 (이 경우 5 초마다)으로 계속 실행됩니다.

3

당신은 타이머를 초기화하고 같은 라인에 발사 할 수

[(checkStatusTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(checkStatusTimerTick:) userInfo:nil repeats:YES]) fire]; 
+1

아주 좋은 구문을! – loretoparisi

관련 문제