Как сделать резервную копию файла Core Data sqlite с изображением для моего приложения для iphone? - PullRequest
0 голосов
/ 21 февраля 2011

Я использую Базовые данные для хранения пути URL файла изображения в моем документе, как сделать их резервную копию на Mac / PC, я копирую файл sqlite и изображение через iTune, и когда я копирую их обратно в iPhone, sqlite вроде бы в порядке, но изображение не появилось. Я думаю, что путь изменился.

что я могу сделать?

1 Ответ

1 голос
/ 17 июня 2011

Я сделал нечто подобное.Два фактора были ключом к тому, чтобы заставить эту архитектуру работать.

  1. Файлы изображений должны храниться в согласованном месте относительно файла хранилища Core Data.
  2. URL / путь, сохраненный в CoreДанные для изображения являются относительными, а не абсолютными.Путь к изображению сделан относительно файла хранилища основных данных.

Относительное расположение в файловой системе

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

     parent directory/
     --> MyCoreDataStore.sql
     --> Images/
     -----> SomeImage1.png
     -----> SomeImage2.png

По сути, я рассматриваю данные приложения как пакет файлов: каталог, содержащий несколько связанных файлов, которые вместе составляют данные приложения или документ данных.

Относительное изображениеURL-адреса

URL-адреса (или пути) к изображениям должны создаваться во время выполнения.Базовое хранилище данных содержит относительный путь / URL к местоположению каждого изображения.Расположение относительно расположения файла основного хранилища данных.Ваше приложение всегда знает полный путь / URL к хранилищу базовых данных.

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

...