же, но с измененным типом одного из параметров функции.
@protocol MyProtocol
…
-(void) foo: (id<OtherProtocol>) obj;
@end
Нужнен второй протокол с уточненным типом параметра:
@protocol MyProtocolSpecified
…
-(void) foo: (id<OtherProtocol, SecondOtherProtocol>) obj;
@end
Как это реализовать? Как я понимаю, наследование и переопределение функции с изменением типа параметра это есть плохой путь.
——————
Нашел вот что:
In general, Objective-C doesn't support contra- or co- variance (changing type of return value or arguments for the same method signature). In practice, it works as long as the arguments are of the same general type/size, but you'll run into problems (like the need to cast often). It is best to avoid doing this.
Т.е остается копипаст и дублирование кода?
Создай @protocol Parent с общими методами и @protocol ChildOne <Parent> и @protocol ChildTwo<Parent> уже со своими методами
Обсуждают сегодня