📜  Swift反初始化

📅  最后修改于: 2021-01-11 07:59:58             🧑  作者: Mango

快速取消初始化

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