美文网首页
swift designated Convenience总结

swift designated Convenience总结

作者: iOS坚持者 | 来源:发表于2018-09-15 03:13 被阅读2次

    构造函数继承条件:
    1、子类如果没有定义任何得designated构造器,它会自动继承父类得所有 designated 构造器;
    那么在子类中只定义一个便利构造器依然可以通过 self.init 调用继承过来的指定构造方法(如果类定义了一个不可选类型的属性或者没有初始值let常量属性,那么类中至少要定义一个指定构造函数)
    2、如果子类实现了父类所有的 designated 构造器,,无论它是继承还是手动编写得,那么它都会自动继承父类所有的convenience 构造器

    构造函数之间调用规则:
    1、指定构造器必须直接调用父类指定构造器
    2、便利构造器函数必须调用同一类中定义得其他构造器函数
    3、便利构造器最终必须以调用指定构造器函数结束

    构造函数安全检查:
    1、指定构造函数必须保证其所在得类的全部存储属性初始化完成,才能向上调用父类构造函数(可选类型除外,因为可选类型本身就允许为 nil)
    2、指定构造函数必须先调用父类构造函数代理,才能去设置继承的属性值;否则设置得值会被父类得初始化方法覆盖,
    3、便利构造函数必须先调用同一类得构造函数,才能去get、set属性值,否则也会被覆盖,而且编译不会通过
    4、构造函数在初始化完成之前,不能调用实例方法,不能get属性值。因为这时还不能知道属性是否已经被初始化。

    相关文章

      网友评论

          本文标题:swift designated Convenience总结

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