Не понимая делегация в Какао - PullRequest
1 голос
/ 28 мая 2010

Я не понимаю, концепция делегирования используется в XCode. При создании нового проекта создаются делегат приложения и контроллер представления, но что делает делегат приложения? Как main.m узнает, как позвонить делегату?

Ответы [ 2 ]

4 голосов
/ 28 мая 2010

main.m не вызывает делегата. Объект приложения делает это во время выполнения, чтобы позволить вам настроить поведение вашего приложения без необходимости создавать подклассы или заниматься другими забавными делами. Делегирование довольно распространенная особенность фреймворков Apple; чтение их документации или страницы Википедии о делегировании может быть хорошим выбором, чтобы узнать больше.

0 голосов
/ 28 мая 2010

main.m - это файл.

Функция main в main.m вызывает NSApplicationMain (или эквивалент UIKit, если вы спрашиваете о Cocoa Touch).

NSApplicationMain запускает общий объект NSApplication.

Объект NSApplication общается со своим делегатом. *

Делегат общего объекта NSApplication вызывается программистами Какао делегатом приложения.

Как предложил Карл Норум, вам следует прочитать раздел о делегатах в Руководстве по основам какао . Это объяснит концепцию делегата более широко; делегат приложения является лишь одним примером.

* Когда именно это происходит, это частично зависит от того, когда создается экземпляр делегата и назначается делегатом приложения. Поместить его в MainMenu.nib и подключить к выходу delegate объекта приложения - это один из способов. Есть и другие, но это самое простое.

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