我在目标c中写了这个小程序。
int x;
x=1;
while (x<60)
{
self.jalo.text = [NSString stringWithFormat:@"%i", x];
x = x + 1;
}
jalo是标签的名称。 它应该是一个计数到60的时钟。我知道它仍然需要等待命令。但是当我想要运行它时,总是在while的行上有一个“thread1:breakpoint2.1”。所以它只运行到这一行。但为什么?我真的不知道这意味着什么。
我希望有人可以帮助我。但是事先非常感谢。
答案 0 :(得分:2)
你做错了。 Cocoa是一个基于事件的系统,您需要让系统处理事件,这意味着您不能使用这样的循环并期望标签更新(或至少观察文本更改)。
请参阅Main Event Loop。
相反,您可以使用重复NSTimer
并在每次调用计时器方法时更改标签文本。这与事件系统一起 ,并允许Cocoa实际重绘标签,以便您观察更改。
答案 1 :(得分:1)
我不会分析你的代码,因为事件循环不会导致动画标签,请参阅trojanfoe答案,了解更多关于这一点的准确性。
对我来说,看起来你只是在Xcode中设置一个断点。 您可以从第七个图标访问断点导航器。删除断点,然后重试。
此外,如果断点不是异常断点,您可以在代码编辑器中看到,由相应行中的蓝色箭头表示。