Tengo que convertir un objeto NSDictionary
en NSData
y además tengo que obtener el mismo NSData
objeto. ¿Cómo debo hacerlo?convirtiendo el objeto NSDictionary al objeto NSData y viceversa
16
A
Respuesta
32
uso NSKeyedArchiver
Convertir NSDictionary Para NSData
NSMutableData *data = [[NSMutableData alloc]init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver encodeObject:YOURDICTIONARY forKey: YOURDATAKEY];
archiver finishEncoding];
[data writeToFile:YOURFILEPATH atomically:YES];
[data release];
[archiver release];
Para obtener el NSDictionary atrás de la NSData almacenado
NSData *data = [[NSMutableData alloc]initWithContentsOfFile:YOURFILEPATH];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
YOURDICTIONARY = [unarchiver decodeObjectForKey: YOURDATAKEY];
[unarchiver finishDecoding];
[unarchiver release];
[data release];
2
Una versión más simple de la respuesta de Robert:
[NSKeyedArchiver archiveRootObject:YOURDICTIONARY toFile:YOURFILEPATH];
y, en consecuencia:
YOURDICTIONARY = [NSKeyedUnarchiver unarchiveObjectWithFile:YOURFILEPATH];
O para responder a la pregunta fijados originalmente, sin imputar un archivo en cosas:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:YOURDICTIONARY];
...
YOURDICTIONARY = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Es todos los métodos de fábrica por lo que es el mismo código con o sin ARC; los métodos utilizados han estado disponibles desde OS X v10.2 y en iOS desde el primer día.
Cuestiones relacionadas
- 1. Convirtiendo NSData en NSDictionary
- 2. Conversión de NSString a NSData y viceversa
- 3. Convierta nsdictionary a nsdata
- 4. Convirtiendo un time_t al objeto NSDate?
- 5. ExpandoObject al objeto estático y viceversa. Abarcando los dos dominios
- 6. combina objetos nsdata en el objeto nsmutabledata
- 7. Objeto débil en un NSDictionary?
- 8. NSDictionary frente a objeto personalizado
- 9. Convirtiendo entre cadenas NSData y base64
- 10. cómo quitar el objeto de NSDictionary
- 11. convirtiendo la imagen en matriz y viceversa?
- 12. Convirtiendo HEX NSString a NSData
- 13. Usando un objeto como clave para NSDictionary
- 14. ¿Cómo convertir de archivo binario a objeto reubicable y viceversa?
- 15. ¿Cómo obtener el objeto para la clave de NSDictionary?
- 16. Convertir NSData a JSON
- 17. Diferencia entre el objeto y el objeto
- 18. Convirtiendo matriz de bytes a cadena y viceversa en C#
- 19. Forma correcta de cargar imágenes en UIWebView del objeto NSData
- 20. Cómo convierto NSDictionary en NSData como un plist (sin guardar el diccionario)
- 21. Objeto fecha frente al objeto DateTime
- 22. Convirtiendo el valor de la clave RSA sin formato al objeto SecKeyRef para cifrado
- 23. Convirtiendo un objeto personalizado en JSON utilizando la gema JSON
- 24. Compruebe si un objeto es un NSArray o NSDictionary
- 25. Cómo deserializar el objeto json y asignarlo a un NSDictionary en iOS
- 26. Convirtiendo un objeto StringIO a un Django ImageFile
- 27. Respondiendo con un objeto JSON en NodeJS (convirtiendo objeto/matriz en cadena JSON)
- 28. Convirtiendo la interfaz de objeto COM de C a Delphi
- 29. Diferencia entre el objeto Node y el objeto Element?
- 30. Convirtiendo cadena de tiempo utc a objeto datetime