Speichern Sie nsdate auf der Festplatte
-
27-10-2019 - |
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?
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.