美文网首页
Swift构造器

Swift构造器

作者: 我是繁星 | 来源:发表于2019-08-02 17:27 被阅读0次

推荐swiftGG的官方文档翻译《swift构造器》

  • swift类的构造分为两个阶段,第一个阶段是指定构造器初始化所有属性。第二阶段,在初始化所有属性之后,会有指定特殊属性值也就是进一步自定义的机会。两段构造过程让整个构造过程更加安全,表现在能防止属性在初始化之前被访问,也可以防止另一个构造器意外的赋予不同的值。

  • 对于值类型来说,如果不给出构造函数,会默认创建一个注意成员构造器,如果对于类来说,会简单的创建一个所有属性都是默认值的实例。

  • 由于值类型没有继承关系,所以值类型的构造代理都是横向的,代理给自己的其他构造器。也就是可以调用self.init()。

  • 类的构造器代理:
    指定构造器:负责初始化类中提供的所有存储类型的属性(只负责当前类,不负责父类),向上代理,也就是在初始化当前类属性之前必须调用父类的指定构造器。

init(parameter){
  //初始化存储属性
}

便利构造器:辅助构造器,负责在初始化所有存储属性之后创建一个特殊用途或指定输入值得实例,他只能横向代理,也就是调用当前类的构造器

convenience init(parameter){
  //初始化存储属性
}
  • 构造器的继承,如果一个子类的指定构造器未调用父类的指定构造器,会在结尾隐士添加super.init(),如果你在子类构造器里面修改了父类构造器的属性,则会报错,必须手动把super.init()添加到最前面。

  • 子类的构造器只能调用父类的指定构造器不能调用父类的便捷构造器。

  • 如果子类没有定义任何指定构造器,则将自动继承父类所有的指定构造器,如果子类提供了所有的父类置顶构造器的定义--无论是通过上规则继承下来的还是提供自定义实现,它都将自动继承父类所有的便利构造器。

相关文章

  • Swift学习:构造器(中)

    Swift之构造器(上)Swift之构造器(中)Swift之构造器(下) 本篇继续对Swift中的构造器进行介绍,...

  • Swift学习:构造器(下)

    Swift之构造器(上)Swift之构造器(中)Swift之构造器(下) 本篇主要介绍Swift中构造器的一些特殊...

  • Swift学习:构造器(上)

    Swift之构造器(上)Swift之构造器(中)Swift之构造器(下)Swift赋予自定义类型更加丰富的功能,一...

  • swift学习笔记

    1.swift类的构造器 swift构造器有三种:指定构造器和, 便利构造器, 默认构造器. 其中用'conve...

  • Swift类的构造过程

    Swift类的存储型属性必须在构造过程完成后有值,Swift为类提供了两种构造器——指定构造器、便利构造器 指定构...

  • Swift构造器

    推荐swiftGG的官方文档翻译《swift构造器》 swift类的构造分为两个阶段,第一个阶段是指定构造器初始化...

  • Swift5 构造函数知识点总结

    Swift 为类提供了两种构造器,分别是指定构造器和便利构造器。 指定构造器必须总是向上代理(重写、重载) 便利构...

  • Swift面向对象

    创建一个类 类的四种属性 类的构造 swift类构造过程 指定构造器 便利构造器 KVC构造器 实例方法和类方法 ...

  • swift 构造器

    构造器 使用构造器来实现构造过程,构造器可以看做是用来创建新实例的特殊方法,与OC的构造器不同,之前是先调用父类的...

  • swift构造器

    指定构造器 初始化类中提供的所有属性,并根据父类链往上调用父类的构造器来实现父类的初始化。 最终都是通过指定构造器...

网友评论

      本文标题:Swift构造器

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