Протоколы Objective C, требующие реализации хотя бы одного из набора методов

В 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

, не удалось реализовать хотя бы один из них.

7
задан jbat100 6 November 2011 в 22:17
поделиться