Swift在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
类型转换Demo 发布于:2021-11-08 17:03 闭包引起的相互应用导致内存泄漏问题 发布于:2021-11-08 16:49 无主引用解决相互引用导致的内存泄漏问题 发布于:2021-11-08 16:35 使用弱引用解决循环引用导致的内存泄漏 发布于:2021-11-08 16:28 循环引用导致的内存无法释放 发布于:2021-11-08 16:27 嵌套函数 传递值 发布于:2021-09-24 19:27 定义参数 各种类型 发布于:2021-09-24 19:26 定义类和创建实例 发布于:2021-09-24 19:25 s双色球的运行代码 发布于:2021-09-23 17:13 比较代码的不同 发布于:2021-09-23 17:05 判断和符号 发布于:2021-09-23 17:04 定义和赋值 发布于:2021-09-23 17:03 元组的类型 发布于:2021-09-23 17:03 case的使用方法必须存在可执行的代码 发布于:2021-09-23 17:00 字典的用法 发布于:2021-09-23 17:01 创建空集合和创建集合赋值 插入 insert() 循环 for ...in 删除 remove() 包含 contains() 发布于:2021-09-23 14:46 是完数的代码 发布于:2021-09-23 17:10 一年中的第几天 发布于:2021-07-12 00:16 无重复的三位数 发布于:2021-07-12 00:03 三位水仙花数计算 发布于:2021-07-11 23:47 罗列出范围内质数 发布于:2021-07-11 23:29 Swift数据结构: 链表(Linked List) 发布于:2021-06-27 18:03 swift数据结构:树 发布于:2021-06-25 10:21 面向协议编程 发布于:2021-06-24 17:58 泛型约束试验 发布于:2021-06-23 18:06 泛型试验案例 发布于:2021-06-23 16:45 异常处理及 App 的生命周期:error协议 发布于:2021-06-28 14:22 用协议建立规则 protocol 发布于:2021-06-23 14:55 多线程:存储和 CPU 的运作方式 发布于:2021-06-22 17:11 class类和Enumeration枚举的使用 发布于:2021-06-22 16:41 结构体的运用 发布于:2021-06-22 15:12 我的代码! 发布于:2020-11-18 11:54 string test 发布于:2020-12-01 10:46 第一个swift测试类 发布于:2020-07-21 18:45 [更多]
显示目录

析构过程



Swift 析构过程

在一个类的实例被释放之前,析构函数被立即调用。用关键字deinit来标示析构函数,类似于初始化函数用init来标示。析构函数只适用于类类型。

析构过程原理

Swift 会自动释放不再需要的实例以释放资源。

Swift 通过自动引用计数(ARC)处理实例的内存管理。

通常当你的实例被释放时不需要手动地去清理。但是,当使用自己的资源时,你可能需要进行一些额外的清理。

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

语法

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

deinit {
    // 执行析构过程
}

实例

var counter = 0;  // 引用计数器
class BaseClass {
    init() {
        counter++;
    }
    deinit {
        counter--;
    }
}

var show: BaseClass? = BaseClass()
print(counter)
show = nil
print(counter)

以上程序执行输出结果为:

1
0

当 show = nil 语句执行后,计算器减去 1,show 占用的内存就会释放。

var counter = 0;  // 引用计数器

class BaseClass {
    init() {
        counter++;
    }

    deinit {
        counter--;
    }
}

var show: BaseClass? = BaseClass()

print(counter)
print(counter)

以上程序执行输出结果为:

1
1
由JSRUN为你提供的Swift在线运行、在线编译工具
        JSRUN提供的Swift在线运行,Swift 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入: