我的倒数计时器不起作用。它从屏幕上的'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'无效。那么,任何人都可以告诉我我的代码有什么问题。
答案 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;
}
等等。