2017-02-22 6 views
1

Ich habe versucht, dies für ein paar Tage ohne Erfolg herauszufinden. Diese Frage wurde schon einmal gestellt, aber die Antworten müssen veraltet sein, da ich keine funktionierende Lösung finden kann. Der Fehler, den Xcode mir gibt, ist auch seltsam.Umwandeln von NSData in nicht verwandte Daten Daten schlagen immer fehl - Swift 3 NSData to Datenkonvertierungsfehler.

Ich habe Daten in Core Data gespeichert, die es als NSData speichert. Ich erhalte diese Daten und versuche, sie in "Daten" umzuwandeln, um letztendlich einen UIImage (Daten: THEData) zu erstellen.

let imageData = item?.image as! Data 
     let newImage = UIImage(data: imageData) 

'item' ist mein Core Data Entität, die das NSData type-Attribut von 'Bild' hält. (Ich habe ‚Erlaubt External Storage‘, das von dem, was ich gelesen erlaubt Core Data-Dateien große Daten extern zu speichern)

die erste Zeile

let imageData = item?.image as! Data 

mir einen Fehler gibt: „Cast von NSData an unabhängiger Art Daten nicht immer

, während die zweite Zeile

let newImage = UIImage(data: imageData) 

gibt einen Fehler aus:. Kann nicht Wert vom Typ umwandeln ‚Daten‘ zu dem erwarteten Argumenttyp ‚Daten‘

Ich bin mir nicht sicher, was hier vorgeht, da ich diese Fehler nicht einmal nachvollziehen kann. Jede Hilfe wäre willkommen.

Danke

+0

haben Sie versucht mit ** let imageData = item? .image as! NSData ** –

+0

Haben Sie versucht, ohne Kraftauspacken auszupacken? Und den Typ des Objekts/NSData, die Ihre imageData zurückkommt, wie wenn Sie es abrufen? –

+0

var imageData = versuche JSONSerialization.data (mitJSONObject: item? .image) –

Antwort

0

ich hatte das gleiche Problem, wenn mein Projekt von Swift 2 bis Swift 3.1 konvertieren. Ich habe es gelöst, indem ich in Xcode 8.3 ein komplett neues Projekt erstellt und die notwendigen Teile des alten Codes hineinkopiert habe. Das Data Core-Modell muss nur in Xcode 8.3 erstellt werden. Es funktioniert für mich.