问题
简单来说,这是一个 swift
语言版本升级而产生的问题,从 3.0 升到 4.0 之后,如果你有重写 extension
中的方法,就会出现这个报错。
解决方式
在基类中被重写的方法前面加上 @objc
就可以了。
代码如下
历史版本:
// 3.0 版本这么写是可以的
extension BaseViewController {
func setupUI() {
// 基类的实现代码
}
}
目前写法:
// 4.0 及之后的版本需要加上 @objc
extension BaseViewController {
@objc func setupUI() {
// 基类的实现代码
}
}
原因
官方在swift 4.0 中不推荐重写 extension 中的方法,详见
stackoverflow