Swift 反初始化
Swift 反初始化是一个过程,在类实例被解除分配之前,调用’反初始化器’来回收内存空间。’反初始化’关键字用于回收被系统资源占用的内存空间。反初始化仅适用于类类型。
反初始化的工作原理
Swift 会自动解除不再需要的实例以释放资源。Swift 使用自动引用计数(ARC)来处理实例的内存管理。通常情况下,当实例被解除分配时,你不需要执行手动清理。但是,当你使用自己的资源时,你需要执行一些额外的清理工作。
例如: 如果你创建了一个自定义类来打开文件并向其中写入一些数据,你可能需要在类实例解除分配之前关闭文件。
语法
deinit {
// perform the deinitialization
}
Swift反初始化示例
var counter = 0; // for reference counting
class baseclass {
init() {
counter++;
}
deinit {
counter--;
}
}
var print: baseclass? = baseclass()
print(counter)
print = nil
print(counter)
输出:
1
0
在这里, print = nil 语句中计数器的值保持不变,因为它没有被释放。
var counter = 0; // for reference counting
class baseclass {
init() {
counter++;
}
deinit {
counter--;
}
}
var print: baseclass? = baseclass()
print(counter)
print(counter)
输出:
1
1