在cooca mac application

时间:2015-06-23 06:43:30

标签: objective-c xcode macos loops

我有一个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 ......

一样工作

我知道有很多关于此问题和解决方案的问题,但对我来说并不适用。

有人可以帮我吗?

...谢谢

3 个答案:

答案 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;