NSTime erstellt ein Zeitintervall
-
14-11-2019 - |
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.
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