Использование делегата приложения - PullRequest
0 голосов
/ 30 марта 2012

Я довольно новичок в Objective-C и программировании какао, поэтому я не совсем понимаю концепцию делегатов приложений.

Когда мы создаем приложение какао, храним ли мы наш код (Методы,действия, выходы) в файлах приложения делегата или мы создаем новый файл, который будет действовать как контроллер и код оттуда.Прямо сейчас я помещаю весь свой код в эти два файла, но из того, что я прочитал, ваша цель состоит в том, чтобы постараться сделать ваши файлы делегатов приложений максимально тонкими.

Мой вопрос таков:файлы делегатов приложения?

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Говоря о applicationDidFinishLaunching:: Это просто точка входа вашего приложения. Обычно вы создаете только окно и ваш первый ViewController или панель вкладок - ваш основной начальный интерфейсный класс - здесь.

Все другие методы делегата NSApplicationDelegate, конечно, имеют другие функции. Большинство из них являются точкой, где вы реагируете на состояние приложения. Открыто / Закрыто / Заземлено / Открыто и т. Д.

Но вам, вероятно, стоит взглянуть на учебники по программированию в документации iPhone. Существует много информации о том, как структурировать ваши objc проекты. Например. посмотрите здесь: Начните разработку приложений для iOS сегодня

Или, если вы ищете OSX Apps, посмотрите здесь:

1) Ваше первое приложение для Mac
2) Руководство по программированию для Mac App

Существует также набор Пример кода .

1 голос
/ 30 марта 2012

Делегат приложения - это местоположение обработчика для обработки событий, происходящих в приложении.Такие вещи, как открывать и закрывать.Он также зависает в течение всего времени выполнения приложения, и вы можете захватить экземпляр singleton в любой момент, выполнив [[NSApplication sharedApplication] delegate].

. Это удобно для передачи объектов между контроллерами и в качестве маршрутизатора для событий.Вы также можете хранить некоторые данные в делегате, если вам нужно изменить / получить доступ к ним в разных частях кода.

Все это хорошо работает для простых приложений, но по мере усложнения вещей вам необходимоесть некоторое разделение обязанностей.AppDelegate должен действительно отвечать только за действия, которые происходят с самим приложением, а не с другим представлением или контроллером.Помещение всего / большей части вашего кода в AppDeligate, безусловно, является плохой практикой и приведет к ужасному коду, поскольку все усложняется и требует обслуживания.

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