172 похожих чатов

ObjC. Есть некий протокол и нужно объявить второй точно такой

же, но с измененным типом одного из параметров функции.


@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.

Т.е остается копипаст и дублирование кода?

1 ответов

9 просмотров

Создай @protocol Parent с общими методами и @protocol ChildOne <Parent> и @protocol ChildTwo<Parent> уже со своими методами

Похожие вопросы

Обсуждают сегодня

$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
окей, дело реально в org было. но что за мусор в конце?
Vi Chapmann
15
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
Есть тут крутые SQL-маньяки (в частности postgresql)? Нужна помощь, совет, что-то всю голову сломал, не могу придумать как реализовать нужное. Есть вот такой набор данных: f...
Alex
11
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
18
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
Ребят, а вот такой вопрос: если я владелец бота анонимного чата, в котором, например, имеются подписки, используя какую-нибудь ЮКассу (или тому подобное, в общем с налогами, в...
Eugene Неелов
8
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Карта сайта