Swift文档Chapter 15 析构过程


析构器只适合于类类型,一个类被释放之前,析构器就会被调用。析构器用deinit来标识。

析构过程原理

Swift会通过自动引用计数自动释放不再需要的实例以释放资源。每个类中只能定义一个析构器,并且析构器不含有参数。

deinit {
    //执行析构内容
}

析构器是在实例释放前自动调用的,不可以手动调用。子类会继承父类的析构器,并且子类析构器实现的最后,父类析构器同样会被自动调用。子类不提供析构器,父类也会调用其析构器。
只有实例的析构器被调用后,实例才会被释放。因此析构器可以访问实例的所有属性,并根据属性修改他们的行为。