He visto la función timeIntervalSinceReferenceDate
de NSDate
. ¿Puedo usar esta función para almacenar el intervalo en el disco y luego devolverlo a NSDate
con el mismo valor que el original? Estoy preocupado de que la referencia o intervalo pueda variar entre las máquinas y aparecer de manera diferente en otra computadora.Guardar nsdate en el disco
7
A
Respuesta
29
NSDate se puede archivar como una instancia de NSData y NSData se puede escribir/leer fácilmente desde el disco.
// 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];
No se ha realizado ninguna comprobación de error. Hazlo mejor que eso. ;-)
2
Como alternativa, si desea almacenar el resultado de timeIntervalSinceReferenceDate
, puede almacenarlo en un NSNumber como un doble y luego guardarlo en el disco utilizando el método NSKeyedArchiver de Joshua.
+0
O simplemente podría escribir los 8 bytes del doble sin molestarse en archivar. – JWWalker
Cuestiones relacionadas
- 1. Guardar NSMutableArray en el disco
- 2. Guardar un DynamicMethod en el disco
- 3. Guardar NSCache contenido en disco
- 4. Guardar clasificador en el disco en scikit-learn
- 5. Guardar/Escribir NSMutableArray de los objetos en el disco?
- 6. Script para guardar datos varbinary en el disco
- 7. ¿Es posible guardar un ensamblaje dinámico en el disco?
- 8. guardar un archivo (de corriente) en el disco usando C#
- 9. Extensión de Chrome: cómo guardar un archivo en el disco
- 10. ¿Cómo guardar un archivo XML en un disco con python?
- 11. Cambiar el tamaño y guardar una imagen en el disco en Monotouch
- 12. Cómo guardar el objeto MailMessage en el disco como archivo * .eml o * .msg
- 13. Buffers de protocolo; guardar datos en el disco y cargar el número de vuelta
- 14. ¿Cómo pruebo la unidad para guardar el archivo en el disco?
- 15. ¿Puedo compilar y ejecutar la expresión de C# sin guardar el ensamblado en el disco?
- 16. Cómo guardar la imagen de ALAsset en el disco rápidamente en iOS?
- 17. ¿Cómo guardar de forma segura un archivo en el disco en Android?
- 18. Zend Framework: ¿cómo leer los archivos adjuntos del correo electrónico (y guardar en el disco)?
- 19. Guardar svg imagen representada por un javascript en el disco local como archivo .png
- 20. Manera eficiente de guardar datos en el disco mientras se ejecuta una tarea de cálculo intensivo
- 21. Guardar una cadena de Base64 en el disco como un binario usando PHP
- 22. Comparando un NSDate con [NSDate date]
- 23. ¿Cómo saltear el tiempo en NSDate?
- 24. ¿Convertir una descripción de NSDate en un NSDate?
- 25. si NSDate es el lunes
- 26. NSNúmero de NSDate
- 27. ¿Se puede guardar y volver a cargar fácilmente desde el disco un generador de Python?
- 28. NSDate convirtiéndose en NSNumber MYSTERY
- 29. Espacio en disco anunciado frente a espacio en disco real
- 30. ¿Guardar el objeto KDTree en Python?
NSKeyedArchiver también puede escribir directamente en un archivo sin NSData. –
+ archiveRootObject: toFile: - true. –
No funciona, dice: - [NSKeyedUnarchiver initForReadingWithData:]: los datos son NULL – Idan