В настоящее время я работаю над лучшей структурой документа, который пытаюсь создать.Документ в основном является документом с основными данными, который использует sqlite в качестве своего хранилища, но использует предоставленную Apple NSPersistentDocument + FileWrapperSupport для включения поддержки оболочки файлов.
В документе интенсивно используются носители, такие как изображения, видео, аудиофайлы и т.д. с потенциально тысячами файлов.Поэтому я пытаюсь создать структуру, похожую на следующую:
/myfile.ext/
/myfile.ext/store.sqlite
/myfile.ext/content/
/myfile.ext/content/images/*
/myfile.ext/content/videos/*
/myfile.ext/content/audio/*
Теперь, прежде всего, я пошел по пути создания временного каталога и размещения в нем всех моих носителей.По сути, создавая пути и имена файлов '/content/images/image1.jpg' так, как я хотел, чтобы они отображались в оболочке сохраненных файлов, а затем при сохранении я пытался скопировать их все в упаковщик файлов ...
Я обнаружил, что файлы действительно были скопированы в оболочку с нужной мне файловой структурой, но когда фактическая оболочка была сохранена, все эти файлы волшебным образом исчезли.
Отлично.
ИтакЯ уничтожил свое существующее решение и попытался вместо этого использовать упаковщики файлов.Это решение включало создание каталога файлов оболочки содержимого при создании нового документа или загрузку в оболочку файла каталога содержимого при открытии документа.
Когда изображение было добавлено / изменено, я создал необходимые оболочки каталога внутриэта оболочка корневого содержимого (т. е. оболочка каталога изображений, если она еще не существует, или любые другие промежуточные оболочки каталогов, которые необходимо было создать), а затем создала обычную оболочку файлов для носителя, удаляя любую существующую оболочку для этого имени файла, еслиодин был там.
Сохранение документа было всего лишь примером того, чтобы убедиться, что обертка файла содержимого была добавлена в обертку файла документа, и документ сохранит.
Что ж ... это было сделано,Первый раз.Тем не менее, любые попытки внести любые последующие изменения, например, добавить изображение, сохраните.Затем замените изображение, сохраните.Не вел себя так, как ожидалось, показывал только изображение с первого сохранения.
Итак, мой вопрос ... во-первых, какой из приведенных выше подходов является правильным, если вообще, а какойЯ делаю это неправильно, чтобы они потерпели неудачу.
А во-вторых, поскольку я ожидаю, что буду управлять тысячами изображений, я использую упаковщики файлов - правильный путь для решения всех проблем.