2012-03-13 4 views
0

Я делаю простое приложение для iPhone, которое будет в основном редактором.iPhone локальное хранилище - основные данные, NSFileManager, ...?

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

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

Я нашел this question & Ответ, который в основном говорит о использовании Core Data, но я недавно узнал о NSFileManager.

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

ответ

2

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

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

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

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

0

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

Смежные вопросы