Frage

Ich habe den folgenden Code in meiner Anwendung in der Methode updateLabel2:

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

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

Beachten Sie, dass Timer ein Label ist.

und früher wird der folgende Code ausgeführt:

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


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

Mein Problem ist, dass TimeLeft auf zufällige Ganzzahlen gesetzt wird, die definitiv nicht den Zeitintervallen entsprechen und auch nicht innerhalb einer Sekunde voneinander liegen.

War es hilfreich?

Lösung

Ihre Formatzeichenfolge ist falsch:
Da NSTimeInterval ist ein Gleitkommatyp, müssen Sie entweder

  • verwenden Sie den entsprechenden Platzhalter %f statt %d oder
  • werfen timeLeft zu einem int während des Anrufs -[NSString stringWithFormat:].

Was — ich denke - ist, worauf Justin sich bezog.

Beiseite

In Anbetracht dessen, was Sie dort tun:
Sollte das nicht "Zeit" sein ELAPSED"?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top