¿Cómo convierto un valor NSString a NSData?
¿ Cómo convierto un NSString
valor a NSData
?
NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSString *str = @"helowrld";
// This converts the string to an NSData object
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
Puedes tomar referencia desde este enlace.
Hacer:
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
entonces siéntete libre de continuar NSJSONSerialization:JSONObjectWithData
.
Corrección a la respuesta sobre el terminador NULL.
Luego de los comentarios, la documentación oficial y las verificaciones , esta respuesta se actualizó con respecto a la eliminación de un supuesto terminador NULL:
Según lo documentado por dataUsingEncoding :
Valor de retorno
El resultado de invocar
dataUsingEncoding:allowLossyConversion:
con NO como segundo argumento.Según lo documentado por getCString:maxLength:encoding: y cStringUsingEncoding: :
tenga en cuenta que los datos devueltos por
dataUsingEncoding:allowLossyConversion:
no son una cadena C estricta ya que no tiene un terminador NULL
En caso de que Swift Developer venga aquí,
para convertir de NSString/String a NSData
var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)
C objetivo:
NSString *str = @"test string";
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str];
NSString *thatStr = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Rápido:
let str = "test string"
let data = NSKeyedArchiver.archivedData(withRootObject: str)
let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! String