Хранение изображений в Core Data или в виде файла? - PullRequest
32 голосов
/ 11 ноября 2010

У меня есть набор данных, который также содержит изображения.Я хочу кешировать эти данные.Должен ли я хранить их в файловой системе или в основных данных и почему?

Ответы [ 3 ]

36 голосов
/ 11 ноября 2010

Есть два основных варианта:

  1. Сохраните файл на диске, а затем сохраните путь к изображению в основных данных
  2. Хранить двоичные данные изображения в основных данных

Я лично предпочитаю 1-й вариант, поскольку он позволяет мне выбирать, когда я хочу загрузить фактическое изображение в память. Это также означает, что мне не нужно помнить, в каком формате находятся необработанные данные; Я могу просто использовать путь к alloc / init новому UIImage объекту.

16 голосов
/ 11 ноября 2010

Возможно, вы захотите прочитать это из Руководства по программированию основных данных о том, как работать с большими двоичными объектами (BLOB).Существуют эмпирические правила для определения того, какой размер двоичных данных должен и не должен храниться в реальном хранилище базовых данных.

Вы также можете взглянуть на Основные данные iPad / iPhone BLOBS против файловой системы для 20 КБ PDF

Если вы поместите двоичные данные в Базовое хранилище данных, вам будет полезно иметь сущность «Данные», которая содержит фактические данные, и отделить вашу сущность «Изображение».Создайте взаимосвязь между двумя объектами, чтобы «Данные» загружались только тогда, когда это действительно необходимо.Объект «Изображение» может содержать метаданные, такие как заголовок, тип данных и т. Д.

0 голосов
/ 01 июня 2016

Относительно того, где хранить пользовательские данные / файлы (я обнаружил, что «поддержка приложений» - это достойное место, учитывая, что я опасался перемещения пользователя, удаления или изменения файла каким-либо образом, что привело бы к изображениюне может быть восстановлен и использован позже моим приложением)

Возьмите в качестве примера Minecraft: например."~ / Библиотека / Поддержка приложений / minecraft / saves /"

Я бы согласился с предыдущими комментариями и сохранил пути к изображениям в основных данных, но в противном случае сохранял бы сами изображения в виде файлов png в своей папке за пределамиосновные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...