2015-10-12 2 views
0

Доброе утро, я использую Swift для «новых для меня» и основные данные. Я пытаюсь извлечь сохраненный UIIMage из основных данных следующим образом. FYI сохраняется в виде двоичных данных в ядре. И я могу видеть данные, если я NSLog его. Мой запрос на выбор выглядит так. У меня нет ОШИБКИ, но мой образ не отображается.Быстрые данные ядра FetchRequest NSData to UIIMage

Когда я сохраняю в Core Data NSLog выглядит следующим образом ..

ли я, чтобы сохранить изображение 2015-10-12 09: 05: 43,307 Car-Doc-Safe-Plus [13972: 3524049] NewImage имеет это в нем (сущностей: Документы; ID: 0x7fd4c0432060; данные: { автоклуба = ноль; driverLicense = < 89504e47 0d0a1a0a 0000000d 49484452 00000215 00000155 08020000 00d7368a d8000000 01735247 4200aece 1ce90000 001C>; insuranceID = ноль noteText = nil; plate = nil; registration = nil; })

Но когда я Fetch это выглядит ..

Запрос имеет это в нем (сущностей: Документы, сказуемое: ((NULL)); sortDescriptors: ((нуль)); Тип: NSManagedObjectResultType;)

**override func viewDidLoad() { 
    super.viewDidLoad() 

let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate) 
let context:NSManagedObjectContext = appDel.managedObjectContext! 

let request = NSFetchRequest(entityName: "Documents") 
request.returnsObjectsAsFaults = false; 
let results : NSArray 
try! results = context.executeFetchRequest(request) 
if results.count > 0 { 
    let res = results[0] as! NSManagedObject 
    carImageView.image = res.valueForKey("driverLicense")as? UIImage 

     } 
}** 

Я знаю, что я что-то отсутствует, но я не могу понять это. Любая помощь приветствуется. JZ

ответ

0

Тип «двоичных данных» в базовых данных предназначен для чтения и записи NSData объектов. Поскольку вы хотите читать/писать UIImage, вам нужно использовать «трансформируемый» тип. При преобразовании Core Data попытается использовать NSCoding для кодирования/декодирования данных, конвертируя их в/из NSData по мере необходимости (Swift as? этого не сделает). Поскольку UIImage соответствует NSCoding, вам не нужно выполнять какую-либо дополнительную работу, кроме как сообщить Core Data для преобразования данных.

+0

Большое значение, но как использовать трансформируемое? –

+0

Вы задаете тип данных атрибута «transformable» в редакторе модели Core Data. Это то же место, где вы ранее устанавливали его в «двоичный». Существует всплывающий список с числовыми типами, строками и т. Д., Который включает «трансформируемое». –

+0

Отлично, я вижу! большое спасибо. Не многие люди помогали с этим, я думаю, они не знают. С уважением, JZ –

Смежные вопросы