Загрузить изображение из файла - сохранить в основных данных - показать изображение с привязками

Я хотел бы загрузить изображения с диска и добавить их к основным данным. У меня есть атрибут, установленный как transformable.

Я хотел бы получить указания о том, как мне читать изображения, а затем добавлять их в сущность. Позже я хотел бы показать изображение на изображении, хорошо используя привязки.

Должен ли я читать файлы как NSData?

Примечание,

У меня также есть данные base64 для изображений в формате JSON. Лучше ли читать и добавлять base64 к основным данным? Когда я тестировал чтение и добавление кода base64, у меня сложилось впечатление, что это медленно.


person Mikael    schedule 20.01.2013    source источник


Ответы (1)


Рекомендуемый способ сделать это — сохранить изображения в файловой системе и просто сохранить имя файла/части пути в Core Data.

Причина в том, что большие BLOBs (внутренний формат SQLite) могут значительно замедлить работу вашей базы данных. Core Data может разумно обрабатывать только относительно небольшие изображения (например, эскизы).

Ваше мнение о «медленности» Core Data как раз связано с этим явлением. Из этого следует, что ваши изображения недостаточно малы для хранения в основных данных. Поэтому вам не нужно возиться с преобразованием сохраненных изображений Core Data в UIImage. Ваш подход к NSData правильный.

person Mundi    schedule 20.01.2013
comment
Спасибо за Ваш ответ! Допустим, я храню путь к файлам в Core Data, как это можно использовать в привязках с Image Well? Что касается BLOB, не решит ли это «Сохранить во внешнем файле записи»? - person Mikael; 20.01.2013
comment
Внешнее хранение изображений, конечно же, устранило бы необходимость хранить большие двоичные объекты в Core Data. Я просто упомянул это в качестве объяснения. Предлагаемая настройка совершенно не зависит от того, как вы представляете данные, включая Image Well. - person Mundi; 21.01.2013
comment
Что я сделал, так это добавил путь к файлу изображения в Core Data, как вы и сказали. Затем я использовал Value Path для привязок. Спасибо! - person Mikael; 21.01.2013