Реализация делегата с именованным параметром

0

Я пытаюсь соответствовать протоколу делегата, написанному в Objective-C. Один конкретный требуемый метод дает мне проблемы. Это выглядит так:

-(void)didReceiveData:(NSData*)data Device:(DFBlunoDevice*)dev;

Автозаполнение XCode Swift предполагает, что я реализую вот так:

func didReceiveData(data: NSData!, device dev: DFBlunoDevice!){...}

Но затем доставляет ошибку:

Не соответствует протоколу "DFBlunoDelegate".

Обратите внимание на разницу в капитализации именованного параметра "устройство". Изменение функции для чтения

func didReceiveData(data: NSData!, Device dev: DFBlunoDevice!){...}

приводит к новой ошибке:

Метод 'didReceiveData (: Device :)' имеет разные имена аргументов из тех, которые требуются протоколом 'DFBlunoDelegate' ('didReceiveData (: device :)')

Как я могу реализовать метод делегирования Objective-C с именованными параметрами с помощью Swift?

  • 2
    Метод Objective-C назван с плохой капитализацией. Device: должно быть device: Может быть, это поможет при переходе на Swift.
  • 3
    Вы уверены, что первая ошибка действительно происходит из-за этого конкретного метода? Нет ли других возможных несоответствий?
Показать ещё 3 комментария
Теги:
delegates

1 ответ

0

Этот вопрос ответил rmaddy в комментариях к вопросу:

Метод Objective-C называется плохой капитализацией. Устройство: должно быть устройство :. Может быть, это поможет при переходе на Свифт.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню