Локальное хранилище iPhone - Core Data, NSFileManager, ...? - PullRequest
0 голосов
/ 13 марта 2012

Я делаю простое приложение для iPhone, которое в основном будет редактором.

Поэтому мне нужен какой-то способ хранения документов, которые создает пользователь.

Поскольку на iPhone концепцияфайловой системы для пользователя нет, я искал вокруг, чтобы найти то, что я должен использовать.

Я нашел этот вопрос и ответ, который в основном говорит об использовании Core Data, но я недавно нашело NSFileManager.

Мой вопрос просто заключается в том, какая система хранения лучше всего использовать для пользовательских документов?Традиционные файлы с помощью NSFileManager?Основные данные?Что-то еще?

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Лично я бы использовал CoreData, потому что он абстрагирует весь код управления файлами для вас.Если вы создаете простые текстовые документы, тогда это не такая уж большая проблема, но если вы работаете со сложной архитектурой документов (то есть коллекцией многочисленных объектов), то это может сэкономить вам много усилий.

Если пользователь хочет экспортировать свой документ, очень легко написать функцию для этого с вашими объектами CoreData.

Единственный недостаток CoreData в том, что если вы используете нестандартные атрибуты, он может получитьНемного сложно, но в большинстве случаев это, конечно, не является нарушением условий сделки.

Люди все время создают форматы документов без CoreData, поэтому существует множество примеров, и это просто сводится кличное предпочтение.На самом деле нет обобщенного правильного ответа на этот вопрос - это проектное решение, которое следует оценивать для каждого приложения.

0 голосов
/ 13 марта 2012

Если все ваши данные для отображения файла содержатся в одной длинной строке (например, HTML), то я бы порекомендовал вам использовать файловый менеджер, поскольку будет легко получить список файлов в определенной директории для отображенияпользователю для открытия.Однако, если они не являются самодостаточными (например, NSAttributedString, которая имеет много сохраненных областей форматирования вместе с фактическим содержимым), вам следует использовать CoreData, так как будет проще хранить все части вместе.

...