Odd Verhalten mit timeIntervalSince1970

8

Ich sehe ein seltsames Verhalten mit dem Versuch, Sekunden seit der Epoche in Ziel C zu bekommen. Dies:

%Vor%

Gibt 15907296 aus, wenn der aktuelle Zeitstempel 1243555623 (28.05.2009 @ 07:08 Uhr EST) sein sollte. Die Systemzeit auf dem iPhone ist korrekt. Ich kann nicht für das Leben von mir herausfinden, was ich falsch mache. Irgendwelche Empfehlungen?

    
Parrots 28.05.2009, 23:09
quelle

3 Antworten

31

timeIntervalSince1970 gibt ein NSTimeInterval zurück, das ein typedef für double ist; % d ist nicht der richtige Formatierer, um ein Double zu drucken (Sie möchten% f).

    
smorgan 28.05.2009, 23:34
quelle
5

Da die Rückgabe von [[NSDate date] timeIntervalSince1970]; ein Double ist, könnten Sie Folgendes versuchen:

%Vor%     
Abizern 28.05.2009 23:39
quelle
1

Sind Sie sicher, dass das Ergebnis von NSDate ein dezimales int ist? Die Ärzte sagen, es ist ein Doppelgänger. Sie könnten versuchen, Casting.

Manchmal erhalten Sie auch einen Pointer-Wert zurück anstelle des tatsächlichen Wertes. Wenn etwas ein NSNumber unter den Covern ist, müssen Sie möglicherweise intValue oder doubleValue verwenden, um den tatsächlichen Inhalt von what zu erhalten ist an der Adresse.

    
Heat Miser 28.05.2009 23:23
quelle