Является ли UIDocument подходящей стратегией для больших документов с метаданными?
Я смотрю на использование UIDocument
ан NSFileWrapper
хранить "проекты", которые содержат довольно много больших видеофайлов и несколько небольших текстовых файлов. Есть несколько проблем, с которыми я сталкиваюсь, и я начинаю задаваться вопросом, является ли UIDocument все еще правильной стратегией.
Спектакль
Насколько я могу судить, NSFileWrapper загружает все в память. Это может быть проблемой при работе с большими видеофайлами. Я думаю, что это можно обойти с помощью пользовательских методов сохранения и загрузки, которые отказываются от стандарта NSFileWrapper
,
Метаданные
Я хочу отобразить список всех документов вместе с некоторыми метаданными. Это может, например, включать изображение для предварительного просмотра, количество записанных сцен, продолжительность видео и т. Д. Единственный способ получить эти данные сейчас - открыть каждый документ и извлечь его. Вероятно, довольно медленно, особенно с большими документами.
Решения?
Сейчас я вижу два решения: полностью отказаться от UIDocument и перейти к пользовательской архитектуре или использовать какой-то централизованный файл метаданных. Недостатки последнего состоят в том, что мне приходится управлять метаданными в двух разных местах, и мне нужно синхронизировать их вручную.
UIDocument по-прежнему остается здесь, и если да, то каким образом можно решить эти проблемы?
1 ответ
Основываясь на комментариях, спрашивающий нашел способ двигаться дальше как таковой:
отказаться от UIDocument в пользу решения Core Data. Теперь я сохраняю все свои данные с помощью Core Data и вручную управляю большими файлами в файловой системе. У меня это работает очень хорошо, и я рад, что переключился. Единственное, от чего мне пришлось отказаться, так это от простой синхронизации iCloud. Но с такими большими файлами это все равно было невозможно. Кажется, вы можете создать свой собственный класс файловой оболочки, чтобы обойти некоторые проблемы с производительностью с большими файлами.