关于swift变量的初始化

初始化器

  • 类、结构体、枚举都可以定义初始化器
  • 类有两种初始化器:指定初始化器(designated initializer),便捷初始化器(convenience Initializer)
初始化器1.png
  • 每个类至少有一个指定初始化器,指定初始化器是类的主要初始化器

  • 默认初始化器总是类的指定初始化器

  • 类偏向于少量指定初始化器,一个类通常只有一个指定初始化器

  • 初始化器的相互调用规则
    1、指定初始化器必须从它的直系父类调用指定初始化器
    2、便捷初始化器必须从相同的类里调用另一个初始化器(从自己的类里调用)
    3、便捷初始化器必须最终调用一个指定初始化器,也就是说你这个便捷初始化器别管调了哪个其它的初始化器,可能其它的初始化器也在调用另一个初始化器,但最终形成调用链条的末尾一定要调用指定初始化器,要不然编译器会报错


    初始化器2.png
初始化器3.png
  • 这一套规则保证了使用任意初始化器,都可以完整地初始化实例


    初始化器4.png

推荐阅读更多精彩内容