Я построил свое приложение на основе NSDocument
- ну, на самом деле NSPersistentDocument
, поскольку оно предоставляет доступ к службам Core Data для хранения графа моего объекта.Это прекрасно сработало для меня, и я не нашел никаких недостатков.
Когда вы подумаете о работе с NS(Persistent)Document
, вам придется придумать какой-то механизм для передачи экземпляра вашего документа на различные контроллеры, которые вы создадите.управлять представлениями / окнами и связанными с ними данными.Я реализовал это, создав универсальный класс контроллера View, способный содержать ссылку на мой экземпляр NSPersistentDocument
.Все мои контроллеры представления являются подклассами этого универсального контроллера и, следовательно, способны легко получать доступ к службам Core Data.
Мое приложение управляет 15 объектами Core Data, объемы которых варьируются в зависимости от объекта от сотен до сотен тысяч экземпляров.Не является частью вашего первоначального вопроса, но вы можете рассмотреть возможность использования Core Data для сохранения объекта.Я нашел, что это экономит время при создании моего приложения (раньше он работал с PHP, Java и различными уровнями БД, которые, как правило, не сильно влияют на производительность).