Swift Deinitialization是一个过程, 在该过程中, 调用” deinitializer”可在释放类实例之前释放内存空间。 ‘deinit’关键字用于取消分配系统资源占用的内存空间。反初始化仅适用于类类型。
反初始化的工作方式
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
评论前必须登录!
注册