У меня есть .framework, который я создаю в Objective-C, и я использую его в проекте iPhone, построенном с использованием Swift 4. .Framework использует делегат для вызова методов по мере необходимости.
Я заметил, что в зависимости от того, использую ли я слово «To» в сигнатуре моего метода протокола, я получаю совсем другую реализацию в Swift.Например, если я определяю свои методы протокола как:
- (void)myApiExited:(Api*)api;
- (void)myApiReadyToPresentViewController:(Api*)api;
Тогда в моем проекте Swift я получаю:
func myApiExited(_ api:XPINApi!) {}
func myApiReady(toPresentViewController api: Api!) {}
Если, однако, я изменяю сигнатуру метода, чтобы не включать слово «Кому»'тогда имя метода в реализации становится таким, как я ожидал:
- (void)myApiReadyPresentViewController:(Api*)api;
Результат:
func myApiReadyPresentViewController(_ api: Api!) {}
Мне очень странно, что слово "Кому"вызвать это.Я ожидаю, что имя метода в моей реализации будет таким же, как в протоколе.Я делаю что-то не так или это какая-то ошибка.