InternalDelegate имеет тип id, поэтому у компилятора нет ИДЕИ, какие методы у этого объекта. Обычно вы объявляете делегатов следующим образом ...
@protocol MyDelegate<NSObject> {
- (void)myMethod;
}
Затем в интерфейсе вы объявляете переменную экземпляра как ...
id<MyDelegate> internalDelegate;
Помните, что со свойствами использовать атрибут assign, поскольку вы не являетесь владельцем делегата ...
@property (nonatomic, assign) id<MyDelegate> internalDelegate;
Примечание: благодаря тому, что делегат реализует протокол NSObject, вы можете вызывать responsedsToSelector для него.