Я пытаюсь соответствовать протоколу делегата, написанному в 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?
Этот вопрос ответил rmaddy в комментариях к вопросу:
Метод Objective-C называется плохой капитализацией. Устройство: должно быть устройство :. Может быть, это поможет при переходе на Свифт.
Device:
должно бытьdevice:
Может быть, это поможет при переходе на Swift.