倒数计时器不起作用

时间:2011-04-04 10:23:21

标签: iphone timer nstimer countdown

我的倒数计时器不起作用。它从屏幕上的'99'开始,它就停在那里。它根本不动。

在我的标题文件中。

@interface FirstTabController : UIViewController {
    NSTimer *myTimer; 
}

@property (nonatomic, retain) NSTimer *myTimer;

在我的.m文件中

- (void)observeValueForKeyPath:(NSString *)keyPath
                  ofObject:(id)object
                    change:(NSDictionary *)change
                   context:(void *)context {
    myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDown) userInfo:nil repeats:YES];
}

- (void)countDown {
    int counterInt = 100;

    int newTime = counterInt - 1;
    lblCountdown.text = [NSString stringWithFormat:@"%d", newTime];
}

我在dealloc中使'myTimer'无效。那么,任何人都可以告诉我我的代码有什么问题。

1 个答案:

答案 0 :(得分:2)

每次调用计时器方法时,都会将counterInt(返回)设置为100。

你可以把它变成一个静态变量

int counterInt = 100;更改为static int counterInt = 100;

当然你必须在counterInt中保存递减的值。

- (void)countDown {
    static int counterInt = 100;
    counterInt = counterInt - 1;
    lblCountdown.text = [NSString stringWithFormat:@"%d", counterInt];
}

如果你需要在这个方法之外的变量,你应该使counterInt成为你的类的实例变量。

@interface FirstTabController : UIViewController {
    int counterInt;
}

等等。