线程,断点

时间:2014-07-23 15:02:27

标签: ios while-loop countdown

我在目标c中写了这个小程序。

int x;
x=1;

while (x<60)
{

    self.jalo.text = [NSString stringWithFormat:@"%i", x];

    x = x + 1;
}

jalo是标签的名称。 它应该是一个计数到60的时钟。我知道它仍然需要等待命令。但是当我想要运行它时,总是在while的行上有一个“thread1:breakpoint2.1”。所以它只运行到这一行。但为什么?我真的不知道这意味着什么。

我希望有人可以帮助我。但是事先非常感谢。

2 个答案:

答案 0 :(得分:2)

你做错了。 Cocoa是一个基于事件的系统,您需要让系统处理事件,这意味着您不能使用这样的循环并期望标签更新(或至少观察文本更改)。

请参阅Main Event Loop

相反,您可以使用重复NSTimer并在每次调用计时器方法时更改标签文本。这与事件系统一起 ,并允许Cocoa实际重绘标签,以便您观察更改。

答案 1 :(得分:1)

我不会分析你的代码,因为事件循环不会导致动画标签,请参阅trojanfoe答案,了解更多关于这一点的准确性。

对我来说,看起来你只是在Xcode中设置一个断点。 您可以从第七个图标访问断点导航器。删除断点,然后重试。

enter image description here

此外,如果断点不是异常断点,您可以在代码编辑器中看到,由相应行中的蓝色箭头表示。