Вы должны указать вашему Rec
объекту, что он должен рассматривать ваш AppDelegate
как своего делегата:
[rec setDelegate:appDelegate];
Это можно сделать через Интерфейсный Разработчик или сразу после создания объекта Rec
.
Затем, когда объект Rec
отправляет сообщение делегата своему делегату, получателем будет ваш экземпляр AppDelegate
:
[[self delegate] doSmtng];
Если сообщение, которое объект Rec
отправляет своему делегату, было необязательным протокольным сообщением, оно было бы отправлено следующим образом:
if ([[self delegate] respondsToSelector:@selector(optionalProtocolMethod)]) {
[[self delegate] optionalProtocolMethod];
}
delegate
обычно объявляется что-то вроде:
@property(assign, nonatomic) id<RecDelegate> delegate;
Поскольку он не сохраняется, в -dealloc
объекту Rec
нужно только nil
его вывести, а не освободить:
delegate = nil;