Swift析构器

简介:

Swift中的析构器的作用类似C++中的析构器,用deinit关键字,在实例被销毁之前被自动调用的,主要作用是释放一些资源,比如你之前打开了一个数据库,并写入一些数据,在类实例被释放之前需要关闭该数据库。

     deinit{
        //释放一些资源
      }

注意:

  1. 析构器只能在类(class)中使用

  2. 无需使用func关键字也没有括号( )

  3. 析构函数不能有返回值和参数

  4. 不能手动调用析构函数,有系统自动调用

先列举一个简单的例子,清晰的看一下流程功能:

    class Father {
    var age:Int
    var height:Int
    init(age:Int,height:Int)
    {
     self.age=age
     self.height=age
    }
     deinit
    {
    print("父类实例即将释放----")
        print("父亲的年龄为:\(age)")
    }
    }
    class Child:Father{
    var sex:String

       init(age:Int,height:Int,sex:String)
    {
        self.sex=sex
        super.init(age: age, height: age)
    }
   deinit
    {
    print("子类实例即将释放----")
        print("孩子的性别为:\(sex)")
    }
    }
    调用:
    var child:Child?=Child(age: 45, height: 175, sex: "男")
    print("\(child!.sex)")

   打印结果:

      男
     子类实例即将释放----
     父类实例即将释放----

通过上面的结果可以得出结论:

* 子类实例释放之前自动调用子类的析构器,最后再自动调用父类的析构器
* 调用析构器是在释放实例销毁之前,所以可以在析构器里面是可以调用实力存储属性的
* 即使子类没有析构器但仍然会调用父类的析构器(前提是父类析构器存在)
目录
相关文章
|
Swift iOS开发
Swift里的类继承,构造和析构代码
敲敲打打, 每天差不多一个小时来学这个, 相信到时候再用XCODE,感觉会熟悉很多。。
1310 0
|
Swift
Swift构造器(Initializer)与析构器(Deinitializer)
<div> <p><span style="font-size:14px;">为了初始化结构体和类等类型的实例属性。</span></p> <p><span style="font-size:14px;">默认构造器</span></p> <p><span style="font-size:14px;"></span></p> <pre name="code" class="html">str
1097 0
|
3月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
91 2
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
193 2
|
3月前
|
监控 Swift iOS开发
局域网计算机监控软件中利用Swift构建iOS端的移动监控应用
在局域网计算机监控软件的开发中,构建iOS端的移动监控应用是一项关键任务。本文将介绍如何利用Swift语言实现这一目标,通过多个代码示例展示关键功能的实现。
225 1
|
3月前
|
安全 JavaScript 前端开发
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
65 0
|
5月前
|
JavaScript 前端开发 PHP
用swift开发ios移动端app应用初体验
直接跟着 apple 官方的 SwiftUI 教程跑的,写惯了 javascript 奔放的代码,很多语法理解起来还是有点费劲
58 1
|
7月前
|
Swift iOS开发
iOS OC混编Swift 后者无法走断点
iOS OC混编Swift 后者无法走断点
49 0
|
Swift iOS开发
IOS使用Swift加载Xib文件
IOS使用Swift加载Xib文件
252 0
|
Swift iOS开发
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人
219 0
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人

相关课程

更多