2016-10-09 3 views
0

Ich versuche Basis 64 codierte Zeichenfolge zu UIImage mit dem folgenden Code zu konvertieren:Swift Convert Base64 String UIImage

let decodedData = NSData(base64EncodedString: base64String!, options: NSDataBase64DecodingOptions(rawValue: 0)) 

print(decodedData) //I get data here (It is not nil) 

var decodedimage = UIImage(data: decodedData!) //return nil 

Die decodedData scheint in Ordnung, Warum ich nil erhalten, wenn zu UIImage Umwandlung?

+0

Ich hatte einen Fehler mit meiner Frage: – Eyal

+1

Wenn DecodedData = nil aber decodedimage == null dann die Daten nicht in a! gültiges Bildformat –

+0

Hallo, hast du recht! Es waren zusätzliche Zeichen am Anfang der base64-Zeichenfolge. Vielen Dank! – Eyal

Antwort

0

Versuchen keine Optionen zu passieren, empfehle ich auch für optionals mit unwrap:

if let string = base64String { 
    let decodedData = NSData(base64EncodedString: base64String!, options: []) 
    if let data = decodedData { 
     var decodedimage = UIImage(data: data) 
    } else { 
     print("error with decodedData") 
    } 
} else { 
    print("error with base64String") 
} 
+0

Hallo, Danke, ich werde es versuchen. – Eyal

+0

Hallo, leider hat es mein Problem nicht gelöst. Das Programm druckt keinen der 2 Drucke im Code. Es bedeutet, dass die Daten nicht null sind. Aus irgendeinem Grund weigert sich der Code, die 'Daten' in UIImage umzuwandeln und gibt in diesem Schritt nil zurück. – Eyal

+0

könnte ein Problem mit den Daten sein, die Sie abrufen –