我正在为我自己的mac编写一个简单的计时器程序.计时器正常倒计时,但我得到了死亡的旋转风车.怎样才能使风车消失?我认为它是因为我有一个无限循环,但必须有一些绕过它.
我有一个按钮点击触发的IBAction(按钮开始).从那里,它调用了另一个完成工作的功能.
这是我的IBAction:
- (IBAction)timerStart:(id)sender {
self.timerDidPause = NO;
[self timerRunning];
}
Run Code Online (Sandbox Code Playgroud)
这里是timerRunning:
- (void)timerRunning {
for (;;) {
usleep(1000000);
if (self.timerDidPause == YES) {
}
else {
if (self.seconds == 0) {
if (self.minutes == 0) {
[self timerDone];
break;
}
else {
self.seconds = 59;
self.minutes = self.minutes - 1;
[self formatTimerLabel:self.hours :self.minutes :self.seconds];
}
}
else {
self.seconds = self.seconds - 1;
[self formatTimerLabel:self.hours :self.minutes :self.seconds];
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这个函数中,函数formatTimerLabel被调用,所以这里是:
- (void)formatTimerLabel:(int)hours
:(int)minutes
:(int)seconds {
NSString *minuteString = [[NSString alloc] init];
NSString *secondString = [[NSString alloc] init];
if (minutes < 10) {
minuteString = [NSString stringWithFormat:@"0%d", minutes];
}
else {
minuteString = [NSString stringWithFormat:@"%d", minutes];
}
if (seconds < 10) {
secondString = [NSString stringWithFormat:@"0%d", seconds];
}
else {
secondString = [NSString stringWithFormat:@"%d", seconds];
}
[self.timerLabel setStringValue:[NSString stringWithFormat:@"%d:%@:%@", hours, minuteString, secondString]];
[self.timerLabel display];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |