Я пытаюсь понять ключевые различия между этими двумя типами шаблонов приложений Core Data.

Насколько я понимаю, с приложением основных данных на основе документов вы получаете бесплатный доступ к экземплярам NSDocument и множеству поведений на основе документов (сохранение диалогов, отмена и т. д.).

Предполагая, что я хочу создать приложение, которое больше основано на «Проекте» и не обязательно ориентировано на создание отдельных сохраняемых документов, должен ли я по-прежнему использовать Core Data с документами?

Чтобы быть более конкретным, я пытаюсь создать простое приложение CMS, используя основные данные и выводя html-страницы структурированным образом. Идея приложения будет сосредоточена на «сайтах», которые на самом деле являются проектами, а не отдельными документами. Проекты содержат консолидированную модель для различных сообщений, страниц, содержимого боковой панели и всего содержимого, которое может потребоваться для размещения на веб-сайте. Но приложение не сохраняет отдельные страницы как документы в традиционном понимании. Я хочу унифицированную модель всех данных проекта и предоставить функции экспорта, при которых вся модель приложения будет выражаться в виде набора html-документов в указанной папке проекта.

Это одновременно и обучающее упражнение, и то, что я хочу попробовать и построить для себя.

Любые советы по конкретной документации для чтения? В частности, информация о приложениях какао на основе «Проекта», а также полезные образцы и учебные пособия.

Вполне возможно, что модель данных CMS может быть сохранена в одном документе Core Data, но это не обязательно кажется правильным с архитектурной точки зрения.

10
Gordon Potter 31 Окт 2009 в 05:37

2 ответа

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

5
Azeem.Butt 31 Окт 2009 в 05:48

Я смотрю на разницу в том, что приложение на основе документа позволяет пользователю иметь несколько наборов информации, хранящихся отдельно.

Лучшим примером с точки зрения функциональности является iTunes. Apple не позволяет вам иметь несколько библиотек, все или ничего, одна «база данных» для всего приложения.

Простое приложение на основе документов будет чем-то вроде TextEdit.

Я не думаю, что то, что вы предлагаете, слишком отличается от приложения на основе одного документа - вам просто нужно помнить, что веб-страницы, которые вы создаете, являются ВЫВОДОМ, а не частью проекта. Точно так же вы не думаете, что печатный вывод из TextEdit является частью документа. Или объектные/исполняемые файлы в XCode, являющиеся частью проекта.

5
Peter Mortensen 28 Ноя 2009 в 14:55