Swift是否支持对同一个类的同一个方法重复定义呢?比如要对UIView进行扩展,分别写了两个extension
extension UIView {
func fun1() {
print("fun1-1")
}
}
extension UIView {
func fun1() {
print("fun1-2")
}
}
这样是不允许的,错误如下:Invalid redeclaration of 'fun1()'
那能否重新定义原生类的方法呢?我们测试一下:
extension UIView {
//重新定义UIView的addSubview,写原生方法完全一样
func addSubview(_ view: UIView) -> Void {
print("add")
}
}
结果是可以的:调用addSubview执行的是extension中的方法: