Я много читаю о объективном c делегировании, но не получил ясного представления. Может кто-нибудь объяснить это с помощью хороший и точный пример, чтобы я мог это понять. Спасибо за ваш ответ.
Может ли кто-нибудь объяснить, что такое делегат с примером?
Ответ 1
Делегат в Objective-C по существу является указателем на объект, который другой класс использует для уведомления о событиях.
Например, класс A запрашивает у вас делегата. Вы скажете, что это [этот] экземпляр класса B. будет делать.
[a setDelegate:b];
Затем в методах и действиях класса A он будет вызывать предопределенные методы для вашего объекта-делегата следующим образом:
-(void)actionFinished:(id)sender
{
[delegate a:self finishedWithResult:RESULT_OK];
}
Итак, ваш объект-делегат должен быть реализован для ответа на это сообщение:
-(void)a:(A *)a finishedWithResult:(int)result { /* respond */ }
Ответ 2
Вот ответ, который я дал о делегатах и как они работают: Анализ XML в Cocoa
Он чаще всего известен как "Шаблон стратегии", и вы можете прочитать все об этом в Википедии: http://en.wikipedia.org/wiki/Strategy_pattern
Это также небольшое изменение в составе объекта: http://en.wikipedia.org/wiki/Object_composition