0

メソッドのアプリケーションに次のコードがありますupdateLabel2

timeLeft = [[NSDate date] timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"lastDate"]];

[[self timer] setText:[NSString stringWithFormat:@"Time Remaining: %f", timeLeft]]; //Set the label text

timer はラベルであることに注意してください。

以前は、次のコードが実行されます。

    [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"lastDate"];


self.repeatTimer = [NSTimer scheduledTimerWithTimeInterval:1
                                               target:self
                                             selector:@selector(updateLabel2) 
                                             userInfo:nil
                                              repeats:YES];

私の問題は、timeLeft がランダムな整数に設定されていることです。これは、timeIntervals がどうあるべきか明確ではなく、互いに 1 秒以内ではないことです。

4

1 に答える 1

0

フォーマット文字列が間違っています:は浮動小数点型である
ためNSTimeInterval、次のいずれかを行う必要があります

  • または%fの代わりに適切なプレースホルダーを使用します%d
  • timeLeft呼び出し中に int にキャストし-[NSString stringWithFormat:]ます。

これは、私が思うに、ジャスティンが言及したものです。

さておき

あなたがそこで何をしているのかを考えると、それは「経過時間
」 であるべきではありませんか?

于 2011-02-17T16:05:24.130 に答える