NSData à la Chaîne dans une Swift Questions

Je vais avoir des problèmes pour convertir mes NSData à NSString en swift. Je suis en utilisant ce que je pense est la bonne commande et format: NSString(data: <DATA>, encoding: <ENCODING>) cependant ce que je dois-je garder de se retrouver avec une valeur nulle. Je suis en cours d'exécution le dernier Xcode beta donc je ne sais pas si c'est lié mais j'espère que sa simple et facile d'erreur que j'ai pu croiser.

J'ai attaché aire de jeux code ainsi qu'une capture d'écran.

Aire de jeux Code pour Xcode 6.3 Beta 2 Build (6D532l)

import Foundation

//: # NSData to String Conversion Playground
//: ### Step 1
//: The first step is to take an array of bytes and conver them into a NSData object.  The bytes are as follows:

var testBytes : [UInt8] = [0x14, 0x00, 0xAB, 0x45, 0x49, 0x1F, 0xEF, 0x15, 0xA8, 0x89, 0x78, 0x0F, 0x09, 0xA9, 0x07, 0xB0, 0x01, 0x20, 0x01, 0x4E, 0x38, 0x32, 0x35, 0x56, 0x20, 0x20, 0x20, 0x00]

//: ### Step 2
//: Convert the byte array into an **NSData** Object

var immutableData = NSData(bytes: testBytes, length: testBytes.count)

//: ### Step 3
//: Attempt to convert the **NSData** object into a string so it can be sent around as ascii.  This for some reason seems to be failing, however.

var convertedString = NSString(data: immutableData, encoding: NSUTF8StringEncoding)

println("String = \(convertedString)")

Résultats de Playgound

NSData à la Chaîne dans une Swift Questions

  • La Swift officiel montre le même résultat. Où obtenez-vous les codes hex à partir de?
  • Votre chaîne de données il suffit de regarder comme des ordures. Ainsi, le décodage va refuser de l'accepter. Mettre dans un certain juridique ascii et il fonctionne. Essayez par exemple var testBytes : [UInt8] = [0x68, 0x65, 0x6c, 0x6c, 0x6f]
  • Je veux juste une chaîne de valeurs hexadécimales. Je suppose que c'est en essayant de décoder comme réel ascii! Duh!!
  • Utiliser la mise en forme d'impression pour obtenir la représentation hexadécimale.
  • Oui, il y a quelques légitime de caractères, mais la plupart sont des ordures. Tout char de plus de 0x7F ou plus petit que 0x20 est des ordures.
InformationsquelleAutor Jeef | 2015-03-04