Документы и Nib-файлы: что означает «документ» под «яблоком»? - PullRequest
2 голосов
/ 28 февраля 2009

Я не понимаю, как термин «Документ» используется в объективе C и какао. Когда я создаю Приложение, почему у меня есть «Документ»? Это не имеет смысла для меня. У меня может быть приложение, такое как редактор изображений, в котором я могу одновременно открывать около 100 изображений. То есть каждое изображение является документом и имеет собственный файл Nib? Может ли кто-то объяснить этот термин понятным людям? Лучше всего было бы много примеров, я думаю.

Ответы [ 2 ]

4 голосов
/ 28 февраля 2009

Из моего древнего, но все еще значимого какао NSFAQ (Не очень часто задаваемые вопросы):

Q18 Зачем мне нужен подкласс Document?

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

Более подробно, не всегда думайте, что Document == File. Концептуальный Документ в большинстве приложений Mac действительно может отображаться в один файл на диске, но также часто является центральным объектом (Модель в классическом дизайне MVC).

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

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

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

1 голос
/ 28 февраля 2009

На основе документов, в терминах шаблонов XCode, по существу означает подкласс NSDocument. NSDocument и NSDocumentController предоставляют абстракцию, которая упрощает поддержку нескольких документов.

Вы правы, вы можете написать код вручную без NSDocument. Тем не менее, NSDocument делает его немного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...