讲解一下Swift中的析构过程

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

语法

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

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中的析构过程
链接地址:http://www.hantingmc.com/qtweb/news3/473603.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联