Frage

Ich habe mir die timeIntervalSinceReferenceDate-Funktion von NSDate angesehen.Kann ich diese Funktion verwenden, um das Intervall auf der Festplatte zu speichern und es dann mit dem gleichen Wert wie das Original an NSDate zurückzugeben?Ich bin besorgt, dass die Referenz oder das Intervall zwischen den Maschinen variieren und auf einem anderen Computer anders angezeigt werden kann?

War es hilfreich?

Lösung

NSDate kann als NSData-Instanz archiviert werden und NSData kann einfach auf die Festplatte geschrieben / von dieser gelesen werden.

// Create and store it
NSDate * date = [NSDate date];
NSData * dateData = [NSKeyedArchiver archivedDataWithRootObject:date];
[dateData writeToFile:@"/Some/path/to/file.dat" atomically:NO];

// Now bring it back
NSData * restoredDateData = [NSData dataWithContentsOfFile:@"/Some/path/to/file.dat"];
NSDate * restoredDate = [NSKeyedUnarchiver unarchiveObjectWithData:restoredDateData];

Es wird keine Fehlerprüfung durchgeführt.Mach es besser als das.;-)

Andere Tipps

Wenn Sie das Ergebnis von timeIntervalSinceReferenceDate speichern möchten, können Sie es alternativ als Double in einer NSNumber speichern und dann mit der NSKeyedArchiver-Methode von Joshua auf der Festplatte speichern.

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