Swift 解初始化

Swift 解初始化

在类实例需要被释放内存空间之前,需要调用“解初始化”以释放内存空间。关键字“deinit”用于释放系统资源占用的内存空间。解初始化仅适用于类类型。

解初始化来释放内存空间

Swift 4在不再需要实例时会自动释放它们,以释放资源。Swift 4通过自动引用计数(ARC)来处理实例的内存管理,详见《自动引用计数》。通常情况下,在实例被解初始化时,您不需要执行手动清理。然而,当您使用自己的资源时,可能需要进行一些额外的清理操作。例如,如果您创建了一个自定义类来打开一个文件并向其写入数据,在类实例被解初始化之前,您可能需要关闭该文件。

var counter = 0; // for reference counting
class baseclass {
   init() {
      counter++;
   }
   deinit {
      counter--;
   }
}
var print: baseclass? = baseclass()

print(counter)
print = nil
print(counter)

当我们使用playground运行上面的程序时,我们得到以下结果 –

1
0

当省略了print = nil语句时,计数器的值保持不变,因为它没有被释放。

var counter = 0; // for reference counting

class baseclass {
   init() {
      counter++;
   }
   deinit {
      counter--;
   }
}
var print: baseclass? = baseclass()
print(counter)
print(counter)

当我们在playground上运行上述程序时,我们得到以下结果 –

1
1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程