Swift 类的初始化、反初始化与属性封装详解
1. 定制反初始化
在 Swift 中,我们有时需要了解类的实例何时从内存中移除。当对象没有被任何变量引用,自动引用计数机制会判定该对象需要从内存中移除。反初始化器是一种特殊的无参数类方法,在运行时销毁给定类型的实例之前会自动执行。我们可以利用反初始化器在实例销毁前添加自定义代码,但不能手动调用反初始化器,它只能由运行时调用。
反初始化器使用 deinit
关键字声明,声明必须无参数且不能返回值。以下是在 Circle
类中声明反初始化器的示例:
deinit {
print("I'm destroying the Circle instance with a radius value of \(radius).")
}
完整的 Circle
类代码如下:
class Circle {
var radius: Double
init(radius: Double) {
print("I'm initializing a new Circle instance with a radius value of \(radius).")
self.radius = radius
}
deinit {
print("I'm destroying the Circle instance wit