我有一个mac应用程序,我想在几秒钟后更新我的标签。
我在NSTimer中使用了以下代码。
[NSTimer scheduledTimerWithTimeInterval:1.0 / 30 target:self selector:@selector(count :) userInfo:nil repeats:YES];
浮动k = 0.0;
if (k >= 958.36)
{
[timer invalidate];
return;
}
NSString* string = [NSString stringWithFormat:@"%.2f", k];
NSLog(@"%@",string);
[lbl setStringValue:string];
k++;
当我使用此代码时,值会增加如下。
1.00
2.00
3.00
4.00
5.00
它只更新整数值,但不更新十进制数。它应该像1.10,1.11,1.12 ......
一样工作我知道有很多关于此问题和解决方案的问题,但对我来说并不适用。
有人可以帮我吗?
...谢谢
答案 0 :(得分:1)
使用k++
是问题,因为k
增加1.0
。
使用不同的值增加,例如:
k += 0.1f;
答案 1 :(得分:1)
您正在打印k
,每次计时器触发时您都会增加1。如果要打印1.10,1.11,1.12等。你需要使用:
NSString* string = [NSString stringWithFormat:@"1.%2f", k+10];
答案 2 :(得分:1)
if (k >= 958.36)
{
[timer invalidate];
return;
}
NSString* string = [NSString stringWithFormat:@"%.2f", k];
NSLog(@"%@",string);
[lbl setStringValue:string];
k += 0.01f;