0

我目前正在制作一个带有倒数计时器的小游戏。我使用 NSTimer,你可以得到额外的时间或更少的时间,取决于你的行动。当我向计时器添加或删除秒数时,时间标签有问题。问题出在我身上,我正在调用我的方法 timerAction,当我添加或删除时间时,他在标签中设置了新时间,然后 NSTimer 也在调用该方法。如果我不调用 timerAction,我必须等待 1 秒才能使用 NSTimer 刷新标签。

那么,我应该怎么做才能解决我的问题?

谢谢你的帮助。

4

1 回答 1

0

首先,我想问一下您的代码。

此外,在这种情况下,我会喜欢这种模式。

@property (nonatomic) NSInteger remainingTime;
@property (nonatomic) NSTimer *timer;

timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timerAction) userInfo:nil repeats:YES]; 

- (void)timerAction {
    if (!countingFinish) {
       remainingTime --;
       //backend regular action
       [self frontEndUpdate];
    }else {
       [timer invalidate];
    }
}

- (bool)countingFinish {
    return (reamainingTime <= 0);
}

- (void)frontEndUpdate {
    //update time label, or other front end update action
}

- (void)addCountingRemaining:(NSInteger) _sec {
     remainingTime += _sec;
     [self frontEndUpdate];
}

顺便说一句,这是 juz 草案代码。希望能帮助到你

于 2012-06-19T10:03:18.323 回答