SwiftSwift基础APP & program

iOS开发 - 「Swift 学习」Swift的析构函数dein

2022-03-12  本文已影响0人  俺不是大佬儿

Swift的析构过程,在类的的实例被释放之前,析构函数被立即调用,析构函数只适用于类的类型

使用deinit来标示析构函数

析构过程原理:

Swift 通过自动引用计数(ARC)处理实例的内存管理,自动释放不再需要的实例以释放资源
通常当实例被释放时不需要手动地去清理。但是,当使用自己的资源时,可能需要进行一些额外的清理需要析构函数

例:如果创建了一个自定义的类来打开一个文件,并写入一些数据,可能需要在类实例被释放之前关闭该文件。

语法:
在类的定义中,每个类最多只能有一个析构函数析构函数不带有任何的参数,在语法上不带括号

deinit {
    // 执行析构过程
}
//析构函数实例
var counter = 0;
class BaseClass{
    init(){
        counter +=  1
    }
    //析构函数
    deinit{
        counter -= 1
    }
}

调用

 var show:BaseClass? = BaseClass()
    print("第一次初始化完成后的引用计数:\(counter)")
    //show = nil执行后,析构函数deinit会被立即调用计算-1,show占用的内存会随之释放
    show = nil
    print("show被释放后的引用计数:\(counter)")

调用结果

第一次初始化完成后的引用计数:1
show被释放后的引用计数:0

\color{gray}{欢迎大佬儿来指正纠错,共同学习😏!!}

上一篇 下一篇

猜你喜欢

热点阅读