Вы получите разные советы, потому что мнения о том, какой метод лучше использовать, расходятся. Как вы заметили, для обработки модели данных существует два основных шаблона проектирования: внедрение зависимостей и синглтон.
Внедрение зависимостей основано на передаче объекта модели данных из контроллера представления в просмотр контроллера по мере необходимости. Маркус Зарра (автор Core Data: API Apple для хранения данных в Mac OS X , который я рекомендую) написал хорошую статью, объясняющую внедрение зависимостей . Большая часть документации Apple рекомендует использовать конструкцию Dependency Injection.
Мне нравится паттерн Синглтон, но он очень, очень, очень опасен для новичка в использовании. Паттерн «Синглтон» настолько легко сделать неправильно, что большинство серых бород отказались от него и просто советуют новичкам никогда его не использовать.
Шаблон Singleton обладает преимуществом увеличения модульности и гибкости приложения. Однако для этого необходимо иметь четкое представление о том, что будет делать модель данных, прежде чем приступить к кодированию как модели данных, так и пользовательского интерфейса. Требуется больше усилий, чтобы получить правильные результаты, и это не так прощающе, как инъекция зависимости. Вы должны использовать синглтоны с большей дисциплиной.
Для простого приложения с тремя иерархическими представлениями Dependency Injection является самым простым и чистым проектом для реализации. Вам не понадобится гибкость синглтона, а синглтон просто добавит ненужную сложность. Шаблон на основе навигации с основными данными, предоставленными XCode, даст вам 50% запуска приложения. Просто добавьте представления второго и третьего уровня, и все готово.