【发布时间】:2011-01-07 00:12:56
【问题描述】:
我有一个计时器正在运行,我希望它在每次计时都会更新我的分数。这是我的代码。它会初始化得很好,分数整数会更新,但标签永远不会从 0 开始更新。
score = score+1;
scoreLabel.text = [NSString stringWithFormat:@"%d", score];
[scoreLabel setNeedsDisplay];
现在,上一个问题我得到了一个答案,提到 UI 更新只能在主线程上工作,所以现在它的设置如下:
-(void) updateGame:(NSTimer *)timer{
[self performSelectorOnMainThread:@selector(updateScore)
withObject:nil
waitUntilDone:false];
}
但仍然没有运气。谁能指出我正确的方向?我以前没有遇到过这样的问题。
【问题讨论】:
-
scoreLabel 真的指向您的标签吗?您的代码似乎找到了。
-
你检查过
scoreLabel不为零吗?如果是IBOutlet,请检查您是否已将其连接到 IB。 -
scoreLabel 确实指向它,我刚刚检查过。至少这就是我在设置它的视觉属性时所指的。
-
pgb,我正在代码中创建 scoreLabel。我在 M 文件的顶部声明它: UILabel* scoreLabel;然后我用...声明所有属性...哦,天哪,当我复制它时,我看到第一行是 UILabel *scoreLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];我删除了重复的 UILabel 并且它运行完美。感谢您让我检查我认为没问题的代码!