Ответ 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 */ }