2016-04-14 5 views
2

Wenn ich meine JSON von meinem API bekommen, ist dies, wie esWie kann ich Byte-Array in base64-String in Swift konvertieren?

{ 
    data:[ 
    100, 
    80, 
    105, 
    99, 
    etc 
    ] 

} 

schaut Wie kann ich dieses Array nehmen und schalten Sie ihn wieder in eine Base64-String, dann NSData und schließlich UIImage. Hier ist was ich bisher habe.

let byteArray = todo["image"]["data"].arrayObject 
var data = NSData(bytes: byteArray!, length: byteArray!.count) 
var image = UIImage(data: data) 

Wenn die Druckdaten druckt es in Ordnung, aber gibt nil zurück zum Bild.

+0

Ist das eine echte Probe des JSON von Ihrer API? – ryantxr

+0

es hat ein paar Felder vor ihm, aber alles, was ich herausfinden muss, ist, wie man das Datenarray von Bytes in NSData konvertiert – ConnorB

+0

Angenommen, dass dies Dezimalwerte sind, sieht dies nicht wie Base64-Daten aus. – ryantxr

Antwort

1

Haben Sie versucht, durch das Array zu iterieren und einen String aus seinen Elementen zu erstellen, verwenden Sie die base64 Encoding/Decoding API, um von String zu NSData zurück zu kommen? So etwas (ich schreibe vom iPad, also kann ich nicht überprüfen).

var encodedString="" 
for smallString in byteArray { 
    encodedString += String(smallString) 
} 
let data = NSData(base64EncodedString: base64Encoded, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) 
var image = UIImage(data: data) 
+0

Was meinst du mit codierter Zeichenkette. Alles, was ich habe, ist ein Datenfeld mit Bytes. Das ist, was meine API mir zurückgibt – ConnorB

+0

Ist nicht der Inhalt Ihres Arrays eine String-Darstellung der Base 64 encode image? – Andrea

+0

Nein, meine API speichert die codierte Basis-64-Zeichenfolge als BLOB, aber Blobs geben die Daten als Byte-Array zurück – ConnorB

Verwandte Themen