0
我试图符合Objective-C中编写的委托协议。一个特别需要的方法是给我麻烦。它看起来像这样:实现一个带有命名参数的委托
-(void)didReceiveData:(NSData*)data Device:(DFBlunoDevice*)dev;
Xcode的雨燕自动完成建议我实现这样的:
func didReceiveData(data: NSData!, device dev: DFBlunoDevice!){...}
但以此来传递错误:
Does not conform to protocol 'DFBlunoDelegate'.
公告中的命名资本的区别参数“设备”。改变函数读取
func didReceiveData(data: NSData!, Device dev: DFBlunoDevice!){...}
导致新的错误:
Method 'didReceiveData(:Device:)' has different argument names from those required by protocol 'DFBlunoDelegate' ('didReceiveData(:device:)')
我如何能实现用斯威夫特命名参数Objective-C的委托方法?
Objective-C的方法被命名为资本化较差。 'Device:'应该是'device:'。也许这将有助于与Swift桥接。 – rmaddy
你确定第一个错误实际上是由于这种特殊的方法而发生的吗?没有其他可能的不合格吗? – luk2302
@ luk2302是的,我确定。如果我只将didReceiveData标记为可选,则编译器认为该类符合。 –