Swift no puede asignar un valor inmutable del tipo NSData

yo tengo

let data = NSData(bytes: &positionValue, length: sizeof(UInt8))

y

let dataString=NSString(bytes: &data, length: sizeof(UInt8), encoding: NSUTF8StringEncoding)

Lamentablemente, el comstackdor arroja un error en la segunda línea, diciendo que no puede asignar un valor inmutable del tipo NSData. ¿Cómo haría para convertir mi variable de data original en una cadena con la encoding SUTF8StringEncoding ?

Actualización: Xcode 7.2 • Swift 2.1.1

 let myTestString = "Hello World" // converting from string to NSData if let myStringData = myTestString.dataUsingEncoding(NSUTF8StringEncoding) { // converting from NSData to String let myStringFromData = String(data: myStringData, encoding: NSUTF8StringEncoding) ?? "Hello World" } 

No estoy muy claro qué intentas lograr, ya que no se explica qué positionValue es positionValue (parece ser un valor de byte).

Independientemente, el post de error surge del uso de & con una constante (creada por let ). & proporciona un puntero inseguro, que permite la manipulación de la memory que contiene el valor de la constante, pero no puede cambiar una constante, por lo que Swift proporciona un post de error.

Si cambia la primera línea para leer

 var data = NSData(bytes: &positionValue, length: sizeof(UInt8)) 

entonces los data ya no son una constante, sino una variable y puedes usar & con ella.

Habiendo dicho todo eso, dado que los data contienen el (los) byte (s) que desea convertir a una cadena, simplemente puede decir

 let data = NSData(bytes: &positionValue, length: sizeof(UInt8)) let dataString=NSString(data: data, encoding: NSUTF8StringEncoding)