美文网首页
Swift 扩展类extension重复定义方法的问题

Swift 扩展类extension重复定义方法的问题

作者: 李萧泓 | 来源:发表于2018-03-24 10:29 被阅读0次

    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中的方法:

    相关文章

      网友评论

          本文标题:Swift 扩展类extension重复定义方法的问题

          本文链接:https://www.haomeiwen.com/subject/iccqcftx.html