1.初始化器
1.1.基本知识点
1.1.1.==是一个特殊的函数,无返回值和 func ==
1.1.2.==只有实例初始化器,没有类型初始化器==
1.1.3.实例属性有两种初始化形式:赋值和初始化器
1.1.4.==可选属性类型可以不初始化==
var no:Int?
实际上是初始化为 nil
1.1.5.不触发属性观察者
1.1.6.==一个类至少需要一个初始化器==
1.2.指定初始化器vs便捷初始化器
1.2.1.指定初始化器
- Designated Initializer
- 类的主初始化器,负责初始化所有属性
- ==必须调用父类的主初始化器==
1.2.2.便捷初始化器
- Convenience Initializer
- 类的辅助初始化器
- 必须调用同类的指定初始化器
- ==就是初始化器调用初始化器==
convenience init(x:Int) {
self.init()
}
2.析构器
2.1.==用于释放实例使用的非内存资源==
deinit{...}
2.2.==只能有一个析构器,只用于 class==
2.3.==不能手动调用==