Ответ 1
respondsToSelector:
является частью протокола NSObject
. Включение NSObject
в MyProtocol
должно решить вашу проблему:
@protocol MyProtocol <NSObject>
@optional
-(void)optionalProtocolMethod:(id)anObject;
@end
Кто-нибудь знает, как лучше всего проверить, был ли реализован дополнительный метод протокола.
Я пробовал это:
if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] )
где делегат:
id<MyProtocol> delegate;
Однако, я получаю сообщение о том, что функция respondsToSelector:
не найдена в протоколе!
respondsToSelector:
является частью протокола NSObject
. Включение NSObject
в MyProtocol
должно решить вашу проблему:
@protocol MyProtocol <NSObject>
@optional
-(void)optionalProtocolMethod:(id)anObject;
@end
Я использую следующий рецепт:
if(self.delegate && [self.delegate respondsToSelector:@selector(closed)]){
[self.delegate closed];
}
Где "закрытый" - это метод, который я хотел вызвать.