2011-09-22 3 views
1

여기 내 질문 : 예를 들어, ViewDidLoad에서 10 초 후에 "scheduledTimerWithTimeInterval:2"을 "3"으로 증가시킬 수 있습니까? 이에서 일예로 :타이머의 시간 간격을 변경하십시오.

[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES]; 

이것 :

[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES]; 

내 영어 나 프랑스어를위한 당신이 죄송합니다 감사합니다 :/

답변

0

사용 setFireDate: 일정을 조정하는 타이머. 당신은 ivar에서 타이머를 추적해야합니다. 예를 들어 :

@property (nonatomic, readwrite, retain) NSTimer *timer; 

@synthesize timer=timer_; 

- (void)setTimer:(NSTimer *)aTimer { 
    if (timer_ != aTimer) { 
    [aTimer retain]; 
    [timer_ invalidate]; 
    [timer_ release]; 
    timer_ = aTimer; 
    } 

- (void)dealloc { 
    [timer_ invalidate]; 
    [timer_ release]; 
} 

... 

self.timer = [NSTimer scheduledTimerWithTimeInterval:...]; 

... 

self.timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:3]; // reschedule for 3 seconds from now 
+0

미안하지만 나는 setFireDate를 사용하거나 ivar에서 타이머를 추적하는 방법을 이해하지 못합니다. 더 자세히 설명해주십시오. :) –

1

는 다음과 같이 재귀 적으로 타이머를 다시 예약 :

float gap = 0.50; 

[NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO]; 

-(void) onTimer { 
    gap = gap + .05; 
    [NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO]; 
} 

========

또는 그것을 무효화 How can I update my NSTimer as I change the value of the time interval

에 따라 :

[myTimer invalidate]; 

그런 다음 새 시간으로 새 것을 작성하십시오. 너는 그것을 nil로 먼저 설정해야 할 수도있다.

관련 문제