调整“for”循环持续时间

时间:2012-05-31 21:23:31

标签: objective-c ios cocoa-touch loops for-loop

我目前正在处理一个应用程序,该应用程序将显示一个从零开始的标签,并计入我指定的数字。我想使用像这样的简单循环来做到这一点。

  for (counterInt = 0; counterInt < 10; counterInt++) 
    {
        NSLog(@"%i",counterInt); 
    }

问题是,这个循环执行的时间比视图在屏幕上显示的时间短。我的控制台在视图最终加载之前记录1-9,标签显示为9.我已经研究了几个小时试图找到一种方法来指定循环的持续时间,我似乎无法找到任何事情都可以。

所以我的整体问题是,是否可以指定循环执行需要多长时间?如果是这样,如果有人能指出我在这里正确的方向,那将非常感谢!

3 个答案:

答案 0 :(得分:7)

即使你放慢了循环,它仍然无法正常工作。 UI元素仅在运行循环结束时更新。您需要设置timer并更新计时器触发的方法中的标签。

答案 1 :(得分:4)

你使用了错误的方法。试试NSTimer。

[NSTimer scheduledTimerWithTimeInterval:5.0
    target:self
    selector:@selector(incrementLabel:)
    userInfo:nil
    repeats:YES];

然后创建一个名为incrementLabel的方法,让它递增一个实例变量并相应地更新标签。

答案 2 :(得分:1)

你可以睡一个帖子:

[NSThread sleepForTimeInterval:1];

然而,jrturton和詹姆斯提供了正确的方法。我会将James的代码放在viewDidAppear方法中,这样你的标签就会在你想要的地方开始,当视图出现时,计数器就会开始。