不符合协议 - 斯威夫特

时间:2018-02-16 15:32:39

标签: swift

我正在使用Xcode 9.2和Swift 4。

当我尝试实现委托方法didSelectCountry时,我收到错误:

Type 'MBRegisterTableViewController' does not conform to protocol 'CountryPickerViewDelegate'

但我已经

func countryPickerView(_ countryPickerView: CountryPickerView, didSelectCountry country: Country) {}

协议声明:

public protocol CountryPickerViewDelegate: NSObjectProtocol {
/// Called when the user selects a country from the list.
func countryPickerView(_ countryPickerView: CountryPickerView, didSelectCountry country: Country)

}

Xcode提供使用存根,但它根本没用。 愚蠢的问题,但我被卡住了。

ViewController Protocol declaration

更新:好的,这是Xcode的一个错误。它应该工作得很好。它在整个项目中有错误的类引用。

1 个答案:

答案 0 :(得分:2)

根据您发布的要点,我发现扩展名为“CountryPickerViewDelegate”的扩展名为空。您需要在该扩展中实现所有CountryPickerViewDelegate协议的方法。例如,该协议有1个名为

的方法
free2(void *p1, void *p2)`
free3(void *p1, void *p2, void *p3)
free4(void *p1, void *p2, void *p3, void *p4)
// maybe a few others

你需要实现类似下面的内容

countryPickerView(_ countryPickerView: CountryPickerView, didSelectCountry country: Country) -> Void

之后再次构建项目。有时Xcode会卡住并报告错误,直到您进行干净并重新构建。

希望有所帮助