iPhone用の簡単なフィットネス/トレーニングアプリを構築しています。ユーザは、ストップウオッチを含むビューコントローラにそれらを引き渡すテーブルからトレーニングセッションのタイプを選択することができる。このビューには、可変配列からデータが移入されたラベルがあります。異なる時間間隔でユーラベルテキストを変更する
私はストップウォッチを作動させることができ、初期ラベルを配列から取り込むことができますが、設定された時間間隔でラベルをどのように変更するのかは分かりません。これらの間隔は定期的なものではないので、10分、25分、45分などになる可能性があります。私はIf文でこれをやろうとしていますが、例えばタイマ== 25の場合です。私はこれが基本的な解決策だと確信していますが、私はプログラミングが初めてで、うまくいかないことがあります。
タイマーコードを次のように
- (void)updateTimer
{
NSDate *currentDate = [NSDate date];
NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:startDate];
NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss.S"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
NSString *timeString=[dateFormatter stringFromDate:timerDate];
timerLabel.text = timeString;
}
スタートタイマー:
- (IBAction)startTimerButton:(id)sender {
if (timer == nil) {
startDate = [NSDate date];
// Create the stop watch timer that fires every 0.1s
timer = [NSTimer scheduledTimerWithTimeInterval:1.0/10
target:self
selector:@selector(updateTimer)
userInfo:nil
repeats:YES];
}
else {
return;
}
}
これまでにこのコードを実行した結果はどうなりますか? –
ビルドエラーがなく、ストップウォッチが正常に動作します。私はIfステートメントを実行する方法を考えることができません。私は "if(timer == 5)[nextLable; setText ...]"を試みますが、 '暗黙的にintの' NSTimer 'への変換がARCの' – pig70
で禁止されています(timer.timeInterval == 5)。 NSTimerの読み込みクラスリファレンスhttps://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nstimer_Class/Reference/NSTimer.html –