美文网首页
convenience

convenience

作者: 骑着雅迪小毛驴上班的老瞿 | 来源:发表于2018-01-10 23:23 被阅读0次

1.今天晚上朋友问我是不是swift4.0中

convenience init() {
        self.init()
    }

这个方法在分类里面用不了了
我也是从2.0开始接触swift,3.0中才开始使用swift写项目
最后我创建了一个项目试了下,才发现这不是swift版本的问题,是以前没有去整理

class TextField: UITextField {
    convenience init() {
        self.init()
    }
}

对于上面说的这种完全可以用,应为这是在子类里面相当于UITextField子类遍历构造函数

2.1

extension TextField{
    convenience init() {
        self.init()
    }
}

这是在分类中,这样子也是可以的,也是相当于是UITextField子类的遍历构造函数

3.那么问题来了,他问的是什么呢?

extension UITextField{
    convenience init() {
        self.init()
    }
}

这样子就不可以了,编译器会报

Initializer 'init()' with Objective-C selector 'init' conflicts with implicit initializer 'init()' with the same Objective-C selector

这样子的错误.看了我就懂了,我的理解是系统也会对UITextField有一个构造函数,这是OC的隐士转换的时候,专门位swift提供,那就是冲突了,所以直接在系统的分类里面如果不带参数的话就会有冲突错误.

测试多个,只要是关于对系统类直接在分类里面去布袋参数的实现遍历构造函数就会有这样子的问题

extension UIViewController{
    convenience init() {
        self.init()
    }
}

3.1

extension UITextField{
    convenience init(str:String) {
        self.init()
    }
}

如果带了参数的话,就不会有这样子的冲突问题.

相关文章

  • Swift 杂谈(二)

    1,convenience便捷构造函数 convenience :便利,使用convenience 修饰的构造函数...

  • swift常用知识点总结

    一、convenience便利方法 convenience:便利,使用convenience修饰的构造函数叫做便利...

  • Swift面试题总结

    1.convenience : 便利,使用convenience修饰的构造函数叫做便利构造函数 // 便利构造函数...

  • convenience

    1.今天晚上朋友问我是不是swift4.0中 这个方法在分类里面用不了了我也是从2.0开始接触swift,3.0中...

  • swift convenience init

    convenience init 只作为补充和提供使用上的方便。并且convenience init 不能被子类重...

  • Swift_convenience

    convenience : 如果构造方法前面没有convenience单词,代表该方法是出事话构造方法(指定构造方...

  • 便利构造函数

    convenience:便利,使用convenience修饰的构造函数叫做便利构造函数 便利构造函数通常用在对系统...

  • convenience 便利构造器

    convenience:便利,使用convenience修饰的构造函数叫做便利构造函数便利构造函数通常用在对系统的...

  • Swift4 便利构造器(convenience)

    convenience:便利,使用convenience修饰的构造函数叫做便利构造函数便利构造函数通常用在对系统的...

  • 方便食品让生活更美好!

    Convenience food makes life better!

网友评论

      本文标题:convenience

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