我正在用Swift重写Objective-C项目,但陷入了编译器错误。我正在调用在Objective-C协议中定义的方法,该方法具有签名:
- (void)startForBuilder:(Object*)builder;
在Swift中,我这样调用该方法:
plugin.start(for: self)
其中self
是Object的实例,plugin是符合上述协议的对象的实例。我收到的错误是
Cannot convert value of type 'Object' to expected argument type 'Object!'
用self
代替self!
无效(因为显然self
不是可选的),我还试图实例化与{{1} },并使用该实例作为参数来检查错误是否消失,但仍然存在。
什么可能导致此错误?