在我的程序中,我希望每次使用时计时器的长度都会变小。为此,我在NSTimer中放入一个变量,并在运行定时器后将该变量乘以0.9。 当“count = count0.9”被注释掉时,程序运行良好,但计时器确实变小了。当它没有被注释掉时,计时器在计时器第四次启动后立即触发(或启动)GameOver功能。这很奇怪。
NSTimer*Timer;
int count=3;
-(void)InGame{
Timer = [NSTimer scheduledTimerWithTimeInterval:count target: self selector:@selector(GameOver)userInfo:(nil) repeats:NO];
count=count*.9; }
这让我发疯了,我为此做了一个堆栈溢出帐户。 谢谢您的帮助!我希望我知道如何为你攻击我的整个代码。
答案 0 :(得分:1)
这可能是因为您使用int
来存储结果,因此您的小数值会被截断。
Time 1: 3
Time 2: 3 * .9 = 2.7 => int = 2
Time 3: 2 * .9 = 1.8 => int = 1
Time 4: 1 * .9 = 0.9 => int = 0