2016-05-01 13 views
0

Wenn ich alle Informationen für ein Bild von meiner GET-Anfrage in JSON abrufe, versuche ich die Zeichenfolge, die ich bekomme, in ein Bild zu konvertieren. Es kommt zu mir als eine Base64-Zeichenfolge, die ich in NSData konvertieren und dann versuche ich, es in die ImageView zu setzen, aber ich bekomme immer einen "unerwartet gefunden Null beim Entpacken optional" -Fehler. Ich druckte die NSData meiner Konsole, bevor es in meiner Imageview Linie Abwickeln (zeigt es nicht Null ist) und ich bekomme die Ausgabe vonkonvertiertes Bild für TableView mit "unerwartet gefunden Null beim Entpacken optional"

d6ae5d4c be632efe 39fa8e9e f5cfc92c 7feb391c 16f7e7e9 eb5e7e2b 0fd0e6a8 51ba97dc 865c639e 39e9ed9e >) 

es ist viel länger, aber das ist nur eine Idee zu geben.

Hier ist mein Code, wo ich das Problem bin immer:

//Convert image here 
     let base64String = media[indexPath.row].image 
     let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0)) 
     print(decodedData) 

     cell.mediaImageView.image = UIImage(data: decodedData!) 

Antwort

1

Sie base64 nicht konvertieren, Daten direkt in Bild konvertieren, die Sie von Antwort bekam.! hoffe das wird helfen :)

+0

sollten zuerst als Kommentar gepostet werden. – Shubhank

0

Fixed it. Rocket-Wissenschaftler Ich vergaß, ein Platzhalterbild hinzuzufügen, wenn die hereinkommenden Daten kein Foto hatten und verhinderten, dass das Bild der Zelle einen Nullwert auspackte, was den Fehler, den ich immer bekam, auslöste. Aktualisierter Code für diejenigen, die in der Zukunft ein Problem haben

//Convert image here 
     let base64String = media[indexPath.row].image 
     let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0)) 

     if decodedData == nil { 
      cell.mediaImageView.image = UIImage(named: "camera") 
     } else { 
      cell.mediaImageView.image = UIImage(data: decodedData!, scale: 0.9) 
     } 
+0

Wenn Sie in der Zukunft einen Haltepunkt setzen, einen Ausdruck (media [indexPath.row] .image) hinzufügen und die Ausführung Zeile für Zeile durchlaufen, während Sie Ihre Variablen ansehen (ist es leer?), Hätten Sie Ihr Problem sofort entdeckt. –