1

如何编写代码如果 timer1Elapsed 完成倒数计时器然后转到下一个 timer2Elapsed,完成倒数后返回 timer1Elapsed 进行倒数等等重复过程 5 次。在条件 A 和 B 中似乎 (A -> B -> A -> B ... 5 次) 有固定时间,只需说 A 计数 1 分钟和 B 计数 30 秒。请帮助,请不要拼写错误,因为我是初学者。如果我的代码错误,请纠正我。请大方。

- (void) timer2Elapsed:(id)timer
{
    ...

    if (remainingTime <= 0)
    {
        [timer invalidate];
        [NSTimer scheduledTimerWithTimeInterval:0.99 target:self selector:@selector(timer3Elapsed:) userInfo:nil repeats:YES];
    }

    myDisplay.text = [NSString stringWithFormat:@"%d : %d : %d", hour , minute, second];
}

- (void) timer1Elapsed:(id)timer
{
    ...

    if (remainingTime <= 0)
    {
        [timer invalidate];
        [NSTimer scheduledTimerWithTimeInterval:0.99 target:self selector:@selector(timer2Elapsed:) userInfo:nil repeats:YES];
    }

    myDisplay.text = [NSString stringWithFormat:@"%d : %d : %d", hour , minute, second];
}

这是我的按钮

- (IBAction)startBtn:(id)sender {
        [NSTimer scheduledTimerWithTimeInterval:0.99 target:self selector:@selector(timer1Elapsed:) userInfo:nil repeats:YES];
}
4

1 回答 1

1

如果您需要一个计时器来调用另一个计时器,您可以使用以下代码

+ (void) timer2Elapsed:(id)timer
{
    static int numberOfTimes = 0;
    if(numberOfTimes >= 5)
    {
        numberOfTimes = 0;
        return;
    }
    numberOfTimes ++;

    [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(timer1Elapsed:) userInfo:nil repeats:NO];
}

- (void) timer1Elapsed:(id)timer
{
    [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(timer2Elapsed:) userInfo:nil repeats:NO];
}

- (void)startTimers
{
    [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(timer1Elapsed:) userInfo:nil repeats:NO];
}
于 2012-06-26T10:29:40.373 回答