Можно ли использовать базовые данные в приложении на основе документов? - PullRequest
1 голос
/ 03 апреля 2019

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

Поскольку данныеПотребность сохранить / загрузить файл довольно сложна: большая иерархия различных объектов, с метаданными, файлами изображений и т. д. Мне интересно, какая технология лучше использовать в будущем.Мне попалось NSFileWrapper и его возможность сохранять разные файлы как один.И я определенно мог бы использовать это.Но я также видел UIManagedDocument и возможность использовать Core Data в моем проекте, в то же время, возможно, сохраняя содержимое базы данных Core Data (я знаю, что это не совсем база данных, но вы понимаете, о чем я) вфайл, который я мог бы написать где-нибудь в File App .

Можно ли ожидать такого поведения?

Переформулировать: мне интересно, могу ли я прочитать /записывайте файлы через UIDocumentBrowserViewController, с данными, описанными UIManagedDocument, которые работают с Core Data.

Заранее спасибо.?

1 Ответ

1 голос
/ 03 апреля 2019

Как вы обнаружили, UIManagedDocument существует для вашего вида приложений. Кроме того, в нем предусмотрены методы для записи и чтения дополнительного содержимого , такого как метаданные или файлы изображений, которые есть в пакете документов.

При этом я никогда не использовал UIManagedDocument и никогда не видел, чтобы его использовали другие. Быстрый поиск GitHub обнаруживает только этот один проект с двумя участниками, которые написали обертку вокруг него в 2013 году. Кроме того, похоже, что нет никакого примера кода от Apple, и замечание в writeAdditionalContent (_: to: originalContentsURL:) документация, которая Дополнительный контент не поддерживается в iCloud , вызывает у меня некоторое беспокойство, но, возможно, это хороший признак того, что команда Core Data знает, где рисовать линия.

Я использовал macOS-аналог UIManagedDocument, NSPersistentDocument. Он находится в похожей ситуации, когда его используют не очень часто, но с множеством известных технических проблем. Поэтому несколько лет назад я переключился на BSManagedDocument , который предположительно имитирует UIManagedDocument для поддержки Core Data во всей его современной красе . Я был счастлив с BSManagedDocument.

В итоге, если бы я был в вашей ситуации, да, я бы попробовал UIManagedDocument. Но не удивляйтесь, если вам нужно использовать инцидент поддержки DTS или два во время разработки.

...