小白教程
所有教程
关于
Search
172.69.59.16
172.69.59.16
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Swift 析构过程”的源代码
本页内容
上一节:
Swift_构造过程
下一节:
Swift_可选链
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:Swift 析构过程}}[[Category:Swift 教程|26]] = Swift 析构过程 = 在一个类的实例被释放之前,析构函数被立即调用。用关键字<code>deinit</code>来标示析构函数,类似于初始化函数用<code>init</code>来标示。析构函数只适用于类类型。 == 析构过程原理 == Swift 会自动释放不再需要的实例以释放资源。 Swift 通过自动引用计数(ARC)处理实例的内存管理。 通常当你的实例被释放时不需要手动地去清理。但是,当使用自己的资源时,你可能需要进行一些额外的清理。 例如,如果创建了一个自定义的类来打开一个文件,并写入一些数据,你可能需要在类实例被释放之前关闭该文件。 === 语法 === 在类的定义中,每个类最多只能有一个析构函数。析构函数不带任何参数,在写法上不带括号: <sample title="" desc="" lang="swift" hererun="1"> deinit { // 执行析构过程 } </sample> == <sample title="" desc="" lang="swift" hererun="1"> var counter = 0; // 引用计数器 class BaseClass { init() { counter += 1; } deinit { counter -= 1; } } var show: BaseClass? = BaseClass() print(counter) show = nil print(counter) </sample> 以上程序执行输出结果为: <sample title="" desc="" lang="swift" hererun="1"> 1 0 </sample> 当 show = nil 语句执行后,计算器减去 1,show 占用的内存就会释放。 <sample title="" desc="" lang="swift" hererun="1"> var counter = 0; // 引用计数器 class BaseClass { init() { counter += 1; } deinit { counter -= 1; } } var show: BaseClass? = BaseClass() print(counter) print(counter) </sample> 以上程序执行输出结果为: <sample title="" desc="" lang="swift" hererun="1"> 1 1 </sample>
返回至“
Swift 析构过程
”。
上一节:
Swift_构造过程
下一节:
Swift_可选链