美文网首页
Swift:基础(二十五)析构过程

Swift:基础(二十五)析构过程

作者: 解码漫聊 | 来源:发表于2018-01-17 09:44 被阅读0次

Swift 析构过程

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


析构过程原理

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

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

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

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

语法

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

deinit {
    // 执行析构过程
}

实例

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

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

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

1
0

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

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

class BaseClass {
    init() {
        counter += 1;
    }
    
    deinit {
        counter -= 1;
    }
}

var show: BaseClass? = BaseClass()

print(counter)
print(counter)

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

1
1

相关文章

  • Swift:基础(二十五)析构过程

    Swift 析构过程 在一个类的实例被释放之前,析构函数被立即调用。用关键字deinit来标示析构函数,类似于初始...

  • swift基础—析构过程

    析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字 deinit 来标示,类似于构...

  • 《Swift从入门到精通》(十三):反初始化(析构过程)

    反初始化(析构过程)类实例销毁之前会立即调用析构器,用关键字 deinit 反初始化(析构过程)如何工作Swift...

  • Swift-11.析构方法和内存管理

    本章包含内容: 析构过程原理 析构器实践 Swift语言的内存管理分析 weak引用(弱引用) unowned引用...

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

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

  • OneDayOneSwift[15] - Deinitializ

    析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。 析构过程原理 Swift 会自动释放不再需要...

  • Swift:析构过程

    中文文档 析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字 deinit 来标示...

  • Swift 析构过程

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

  • Swift 析构过程

    1.简介 析构器 只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字 deinit 来标...

  • swift - 析构过程

    //析构函数//析构过程原理//Swift 会自动释放不再需要的实例以释放资源。如自动引用计数章节中所讲述,Swi...

网友评论

      本文标题:Swift:基础(二十五)析构过程

      本文链接:https://www.haomeiwen.com/subject/gweyoxtx.html