2009-08-20 9 views
1

私はこのコードを使用しています:NSTimer問題

timer = [NSTimer scheduledTimerWithTimeInterval:2 
             target:self 
             selector:@selector(update) 
             userInfo:nil 
             repeats:YES]; 
... 

-(void)update { 
    NSDate *date = [NSDate date]; 
    NSString *Currentdate = [date descriptionWithCalendarFormat:@"%b %d, %Y %I:%M:%S %p" 
                 timeZone:nil 
                 locale:nil]; 
    lbl.text = Currentdate; 
} 

それが正常に動作しますが、私は、実行時に1秒に2秒からタイマー間隔を変更したいです。これどうやってするの?

ありがとうございます。

+0

scheduledTimerWithTimeInterval:2ではなく1を設定しますか? – diciu

+0

私は彼が作成された後、タイマーの間隔を変更する方法を知りたいと思いますか? – jhauberg

答えて

2

ちょうどinvalidate古いタイマーと新しいものを作成します。私はNSTimerが時間間隔の変更をサポートしているとは思わない、それはインターフェイスと実装の両方で余分な厄介者になるだろう。

10

タイマー間隔を作成した後で変更することはできません。

// You have to invalidate it...be careful, 
// this releases it and will crash if done to an already invalidated timer 

if (self.timer != nil) { 
    [self.timer invalidate]; 
    self.timer = nil; 


//... then declare a new one with the different interval. 

timer = [NSTimer scheduledTimerWithTimeInterval:newInterval 
            target:self 
            selector:@selector(update) 
            userInfo:nil 
            repeats:YES]; 
}