使用命名参数实现委托

时间:2016-06-07 15:49:45

标签: objective-c swift delegates

我试图遵循用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委托方法?

1 个答案:

答案 0 :(得分:0)

rmaddy在问题的评论中回答了这个问题:

  

Objective-C方法的命名资本不足。设备:   应该是设备:也许这有助于与斯威夫特搭桥。