2017-02-22 42 views
1

Я пытался понять это на пару дней без успеха. Этот вопрос задан раньше, но ответы должны быть устаревшими, поскольку я не могу найти рабочего решения. Ошибка Xcode дает мне тоже странно.Форматирование формы NSData для несвязанного типа Data always Fails - Swift 3 Ошибка NSData to Data.

Я сохранил данные в Core Data, которые сохраняют его как NSData. Я извлекаю эти данные и пытаюсь преобразовать их в «Данные» для конечной цели создания UIImage (данные: THEData).

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

«item» - это объект Core Data, который содержит атрибут типа NSData для «изображения». (У меня есть «Разрешает External Storage», который от того, что я прочитал позволяет основных данных для хранения больших файлов данных внешне)

первая линия

let imageData = item?.image as! Data 

дает мне ошибку: «Cast от NSData к несвязанной типа Данные всегда терпит неудачу

в то время как вторая линия

let newImage = UIImage(data: imageData) 

дает ошибку:. не удается преобразовать значение типа «Data» ожидаемого типа аргумента «Data»

Я не уверен, что здесь происходит, поскольку я даже не могу понять эти ошибки. Любая помощь будет оценена по достоинству.

Спасибо

+0

Вы попробовали с ** let изображениеData = item? .image как! NSData ** –

+0

Вы пробовали разворачивать без развертывания силы? И печать типа объекта/NSData, возвращаемого вашим образцом, как при его получении? –

+0

var imageData = try JSONSerialization.data (withJSONObject: item? .image) –

ответ

0

У меня была такая же проблема при преобразовании мой проект от Swift 2 к Swift 3.1. Я решил это, создав совершенно новый проект в Xcode 8.3 и скопировав в него необходимые части старого кода. Модель Data Core должна быть создана только в Xcode 8.3. Это работает для меня.