data convert xcode nsstring nsdata swift nsmutableurlrequest

xcode - convert - data to string swift 4



Crear NSData desde NSString en Swift (5)

Swift 4 y 3

La creación del objeto Data object from String se ha modificado en Swift 3. La versión correcta ahora es:

let data = "any string".data(using: .utf8)

NSMutableURLRequest finalmente tener una NSMutableURLRequest con un HTTPBody válido, pero parece que no puedo obtener mis datos de cadena (procedentes de un UITextField ) en un objeto NSData utilizable.

He visto este método para ir por el otro camino:

NSString(data data: NSData!, encoding encoding: UInt)

Pero parece que no puedo encontrar ninguna documentación para mi caso de uso. Estoy dispuesto a poner la cadena en algún otro tipo si es necesario, pero ninguna de las opciones de inicialización para NSData utilizando Swift parece ser lo que estoy buscando.


Aquí un método muy simple

let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)


En Swift 3

let data = string.data(using: .utf8)

En Swift 2 (o si ya tiene una instancia de NSString )

let data = string.dataUsingEncoding(NSUTF8StringEncoding)

En Swift 1 (o si tienes una String rápida):

let data = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)

También tenga en cuenta que los data son un Optional<NSData> (ya que la conversión puede fallar), por lo que deberá desenvolverlo antes de usarlo, por ejemplo:

if let d = data { println(d) }


código swift4 let data = myStringVariable.data (usando: String.Encoding.utf8.rawValue)


// Checking the format var urlString: NSString = NSString(data: jsonData, encoding: NSUTF8StringEncoding) // Convert your data and set your request''s HTTPBody property var stringData: NSString = NSString(string: "jsonRequest=/(urlString)") var requestBodyData: NSData = stringData.dataUsingEncoding(NSUTF8StringEncoding)!