每秒调用一次函数,持续10秒

时间:2011-11-17 08:28:04

标签: iphone objective-c nstimer

我需要知道如何在总时间内执行操作,我会解释,我需要重复调​​用一个函数10秒,然后每隔1个,我尝试使用计时器,但我明白了什么是称为函数每10秒而不是10秒。

有没有人有任何想法?

感谢

1 个答案:

答案 0 :(得分:1)

我猜你的意思是你想要每秒调用一次函数,并在十秒后停止调用它。我怀疑你希望能够改变间隔(每秒一次)和持续时间(10秒)。

@implementation Example
{
    NSTimer *_timer;
    NSTimeInterval _stopTime;
}

- (void)setTimerWithInterval:(NSTimeInterval)interval duration:(NSTimeInterval)duration
{
    [_timer invalidate];
    _timer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(timerDidFire) userInfo:nil repeats:YES];
    _stopTime = [NSDate timeIntervalSinceReferenceDate] + duration;
}

- (void)timerDidFire
{
    if ([NSDate timeIntervalSinceReferenceDate] >= _stopTime) {
        [_timer invalidate];
        return;
    }
    NSLog(@"hello from the timer!");
}

- (void)dealloc
{
    [_timer invalidate];
    [super dealloc];  // delete this line if using ARC
}

@end