我试图遵循用Objective-C编写的委托协议。一个特别需要的方法是给我带来麻烦。它看起来像这样:
-(void)didReceiveData:(NSData*)data Device:(DFBlunoDevice*)dev;
XCode的Swift自动完成功能表明我的实现方式如下:
func didReceiveData(data: NSData!, device dev: DFBlunoDevice!){...}
然后传递错误:
不符合协议' DFBlunoDelegate'。
注意命名参数" device"的大小写差异。更改要读取的功能
func didReceiveData(data: NSData!, Device dev: DFBlunoDevice!){...}
导致新错误:
方法' didReceiveData(:Device:)'具有与协议所要求的参数名称不同的参数名称DFBlunoDelegate' (' didReceiveData(:设备:)&#39)
如何使用Swift实现具有命名参数的Objective-C委托方法?
答案 0 :(得分:0)
rmaddy在问题的评论中回答了这个问题:
Objective-C方法的命名资本不足。设备: 应该是设备:也许这有助于与斯威夫特搭桥。