В Objective C методы протокола могут быть обязательными или необязательными:
@protocol AProtocol
@required
-(void) aRequiredMethod;
@optional
-(void) anOptionalMethod;
@end
Есть ли элегантный способ сказать, что объект, соответствующий протоколу, должен отвечать как минимум на один из набора методов, моя мечта была бы что-то вроде
@protocol AProtocol
@anyof
-(void) onePossibleMethod;
-(void) anotherPossibleMethod;
@optional
-(void) anOptionalMethod;
@end
EDIT:
Это (насколько я знаю) невозможно, есть ли способ поднять предупреждение во время компиляции, если класс объявлен как соответствующий к данному протоколу, полностью состоящему из необязательных методов
@protocol AProtocol
@optional
-(void) onePossibleMethod;
-(void) anotherPossibleMethod;
@end
, не удалось реализовать хотя бы один из них.