Finden Differenz zwischen zwei timestamps - iOS
Ich versuche, mit NSTimeInterval, um herauszufinden, den Unterschied zwischen zwei Zeitstempeln in meiner iOS-Anwendung. Jedoch ich wenn versuchen, pass in meinen timestamp, bekomme ich die folgende Fehlermeldung:
Bad-Empfänger Typ 'double'
Hier ist mein code:
//Get the current date/time in timestamp format.
NSString *timestamp = [NSString stringWithFormat:@"%f", [[NSDate new] timeIntervalSince1970]];
double current = [timestamp doubleValue];
//Find difference between current timestamp and
//the timestamp returned in the JSON file.
NSTimeInterval difference = [current timeIntervalSinceDate:1296748524];
Dachte ich, dass NSTimeInterval ist nur eine andere Bedeutung für Doppel - .. ist es nicht?
Beachten Sie, dass '1296748524' wird hier verwendet als test.
Verstehe ich nicht, was ich falsch mache.
Vielen Dank für Sie Zeit 🙂
Warum sind Sie konvertieren zu einem string zu tun, der Unterschied?
InformationsquelleAutor Supertecnoboff | 2014-03-12
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich erkenne, dass der timestamp! Wenn du gehst, um einen Zeitstempel als string, und konvertieren Sie es dann zurück, um eine doppelte, Sie können nur get it als ein Doppelzimmer.
Update:
Besser:
Aber was Sie wirklich tun, ist die Umwandlung von einem Datum in einen timestamp in einen string, um einen Zeitstempel zu einem Datum zu einem Zeitstempel, also warum nicht einfach von Anfang an und verwenden Sie:
Beste:
Alle werden das gleiche Ergebnis.
Ich Stimme mit Ihnen auf das Datum, und ich aktualisiert, aber ich kann mir nicht vorstellen, dass es jemals schwer herauszufinden. Du bist einfach immer das Intervall des aktuellen Datums. Jede weitere Funktion macht das gleiche, aber fügt unnötige Schritte. Es ist eine ziemlich einfache code-Zeile, und jede andere Methode hat eklatante Entlassungen.
auch [[NSDate alloc]init] ist so ziemlich das gleiche wie [NSDate neu]
Nun, Sie sind eigentlich hart codierte Wert? Sie sagten, Sie erkannte es, also vielleicht ist es einen Stichtag, aber ich nicht erkennen. Ohne Kommentare oder mehr standard Objective-C-code ist nicht freundlich zu einem anderen Entwickler. Auch "neue" ist implementiert auf
NSObject
zu nennenalloc] init]
(was bedeutet, es ist genau das gleiche), aber es ist noch nicht standard coding-Praxis. Ich sage nicht, dass der code nicht funktionsfähig, aber wenn ich code arbeiten zu müssen, und sah, es wäre eine frustrierende Entdeckung.Ich bin nicht hartcodieren, es ist der Wert der im die Frage. Ich nehme an, es hat eine gewisse Bedeutung für Sie, und ich gehe davon aus, dass, wenn es etwas, das Sie brauchen, um zu erinnern, Sie werde weisen Sie es einer Variablen.
InformationsquelleAutor Logan
timeIntervalSinceDate:
zu erhalten erwartet einNSDate
. Auch ist es eine Instanz-Methode für eineNSDate
. Ja, der Rückgabewert ist im wesentlichen einedouble
, aber es ist eine Funktion, mitNSDate
Objekte.Hier ist ein Beispiel für die korrekte Verwendung:
In dem obigen Beispiel, "elapsed" enthält die Anzahl der Sekunden, die verstrichen zwischen "Datum1" und "Datum2". Wenn "Datum1" ist vor der "Datum2", wird der Wert negativ sein.
InformationsquelleAutor mbm29414