¿Alguien me puede decir cómo convertir un NSArray a un NSData? Tengo un NSArray. Necesito enviarlo a un NSInputStream. Para hacer eso, necesito convertir el NSArray a un NSData. Por favor, ayúdenme, estoy atrapado aquí.Cómo convertir NSArray a NSData?
Respuesta
Uso NSKeyedArchiver (que es la última frase del puesto enlaces Garrett):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
Tenga en cuenta que todos los objetos en array
deben cumplir con el protocolo NSCoding
. Si se trata de objetos personalizados, significa que debe leer en Encoding and Decoding Objects.
Tenga en cuenta que esto creará un formato de lista de propiedades bastante difícil de leer, pero puede manejar una amplia gama de objetos. Si usted tiene una gama muy simple (cadenas, por ejemplo), es posible que desee utilizar NSPropertyListSerialization, lo que crea un poco más simple lista de propiedades:
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
También hay una constante de formato XML que puede pasar si prefiero que ser legible en el cable.
No estoy seguro si esto lo ayudará, pero es un enlace para NSMutableArray to NSData.
Gracias por la rápida respuesta , lo he comprobado que antes no ayudaba mucho. – satish
En una nota algo relacionada, así es como usted convertir el NSData de nuevo a un NSArray:
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
Asegúrese de que sea NSKeyedUnarchiver y no NSKeyedArchiver. Puede ser un error fácil de hacer cuando se usa autocompletar. – Sean
Esta respuesta, junto con la respuesta elegida de arriba, debería ser suficiente para archivar/desarchivar cualquier objeto compatible hacia/desde NSData –
Usted puede hacer esto:
NSArray *array= [NSArray array];
NSData *dataArray = [NSKeyedArchiver archivedDataWithRootObject:array];
He utilizado este código.
NSError *error;
NSMutableData *jsonData = [[NSJSONSerialization dataWithJSONObject:yourDemoArray
options:0 // Pass 0 if you don't care about the readability of the generated string
error:&error] copy];
En iOS 9+ utilizar este favor:
NSArray *array = [[NSArray alloc] init];
NSData *data = [NSPropertyListSerialization dataWithPropertyList:array format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];
La versión anterior de esta desfasada y en iOS 8.
Swift:
let data = NSKeyedArchiver.archivedData(withRootObject: jsonArray)
print(data)
- 1. ¿Cómo puedo convertir un NSData a NSArray?
- 2. Cómo convertir dispatch_data_t a NSData?
- 3. Cómo convertir NSData a NSString?
- 4. Convertir NSData a JSON
- 5. Cómo convertir NSArray a NSMutableArray
- 6. Cómo convertir CFArrayRef a NSArray?
- 7. Cómo convertir una cadena a NSData
- 8. Cómo convertir el valor NSData a UIImage
- 9. Cómo convertir CFDataRef en NSData?
- 10. ¿Convertir bytes de NSData a NSString?
- 11. Cómo convertir NSArray en NSString
- 12. Convertir NSArray en NSDictionary
- 13. Cómo convertir NSData a CGDataProviderRef en iphone sdk?
- 14. ¿Cómo convertir NSData a matriz de bytes en iPhone?
- 15. NSData a int
- 16. Convierta nsdictionary a nsdata
- 17. Byte Array a NSData
- 18. ¿Qué es __NSArrayI y __NSArrayM? Cómo convertir a NSArray?
- 19. Conversión de NSData a base64
- 20. NSData de NSKeyedArchiver a NSString
- 21. Convertir un NSArray de diccionarios a matriz JSON en iOS
- 22. Convirtiendo HEX NSString a NSData
- 23. iPhone - int a NSData?
- 24. Conversión de audio y video a NSData
- 25. Conversión de NSString a NSData y viceversa
- 26. NSString a NSArray
- 27. NSData a la codificación NSString
- 28. NSData a NSString devuelve nulo
- 29. NSMutableArray a NSArray en C objetiva
- 30. tratando de convertir [NSImage imageNamed: NSImageNameUser] en NSData
+1 para la mejor respuesta y muchas gracias. – Shivaay