2015-02-13 3 views
0

Я новичок в разработке какао.Странные вещи, создающие новое приложение на основе какао на основе документов на Xcode

Я только что создал впервые приложение типа документа с использованием основных данных и заметил несколько странных вещей.

  1. AppDelegate практически пуст, там нет коды для создания основного хранилища данных, в managedObjectContext, ничего.

  2. Было добавлено два файла: Document.m и Document.h, которые я понимаю, это модель для обработки документов, которые создаст приложение.

  3. Даже без видимого кода инициализации ядра данных Xcode создал файл .xddatamodeld, и это странная часть: Xcode назвал файл Document.xcdatamodeld. Обычно Xcode назвал бы это с тем же именем проекта. Называя это Document, это похоже на то, что эта модель имеет отношение к Document.m и Document.h.

Есть 1 и 3 куча бессмыслицы от Xcode или я что-то упускаю?

Можете ли вы, ребята, объяснить? Благодарю.

ответ

1

Короткий ответ на ваши вопросы: поведение, которое вы видите, вызвано тем, что вы создаете приложение на основе документов. Если вы создали приложение для обуви (не на основе документов), вы увидите другое поведение.

Что касается вопроса 1, при создании нового документа NSPersistentDocument создает хранилище основных данных и контекст управляемого объекта для документа. Каждый документ имеет свой собственный хранилище основных данных и контекст управляемых объектов. Создание хранилища и контекста управляемых объектов в AppDelegate отлично подходит для приложения для обувной коробки, потому что приложение для обувной коробки имеет один набор данных для всего приложения. Но создание контекста хранилища и управляемых объектов в AppDelegate не имеет смысла для приложения на основе документов, потому что может открыться несколько документов, каждый со своим собственным хранилищем и контекстом управляемого объекта.

Что касается вопроса 3, модель данных имеет название документа, потому что приложение на основе документов создает документы. Предположим, вы создаете приложение для создания сценариев с именем документа Screenplay. Когда вы выбираете File> New в приложении, вы создаете новый сценарий, а не новый экземпляр вашего приложения. Вот почему модель данных имеет имя документа, а не имя приложения.

+0

ОК, спасибо за объяснение. Итак, хранилище создается внутри кода, и код не отображается ни в одном файле внутри проекта, не так ли? – SpaceDog

+0

Справа. Класс NSPersistentDocument создает хранилище, которое вы можете подтвердить, прочитав ссылку на класс NSPsistentDocument. Код для создания магазина заключается в реализации NSPsistentDocument и не находится ни в одном из файлов исходного кода вашего проекта. –

+0

AHHHH, ОК, спасибо! – SpaceDog