2010-11-09 9 views
0

Можно создать дубликат:
Delegates, can't get my head around themЧто означает делегат? Зачем нам это нужно?

Привет друзья,

Что такое среднее делегатом в объективном C? Зачем нам это нужно? Когда мы должны его использовать? Есть ли в нем какие-либо типы? Как это использовать?

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

Спасибо вам

+1

Возможный дубликат [Делегаты, я не могу опустить голову) (http://stackoverflow.com/questions/1792815/delegates-cant-get-my-head-around-them) + может быть http: //stackoverflow.com/questions/626898/how-do-i-create-delegates-in-objective-c – Vladimir

+0

Полное объяснение ... http://stackoverflow.com/a/4213005/294884 – Fattie

ответ

4

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

Посмотрите на это так: подросток представляет класс, а ее родитель - делегат. Друг подростка призывает ее пообщаться в торговом центре, но подросток должен спросить родителей, с первого взгляда. Родитель - делегат - может сказать «да» или «нет». Вот как работают делегаты в Cocoa.

Есть ли в нем какие-либо типы?

Делегаты могут быть любого типа. В 10.6 многие делегаты реализуют протоколы с дополнительными методами, поэтому вы увидите такие типы, как id <BlahClassDelegate>, но это не было распространено до 10.6.