Swift - 解析构造

Swift - 解析构造 首页 / Swift入门教程 / Swift - 解析构造

在需要释放一个类实例之前,必须调用" deinitializer"来释放内存空间,关键字" deinit"用于取消分配系统资源占用的内存空间。

释放内存空间

当不再需要实例时,Swift 4会自动释放其实例,以释放资源。 Swift 4通过自动引用计数(ARC)处理实例的内存管理,如自动引用计数中所述。通常,在实例被释放后,您无需执行手动清理。但是,当您使用自己的资源时,可能需要自己进行一些额外的清理。例如,如果创建一个自定义类来打开文件并向其中写入一些数据,则可能需要在释放该类实例之前关闭该文件。
var counter=0; //for reference counting
class baseclass {
   init() {
      counter++;
   }
   deinit {
      counter--;
   }
}
var print: baseclass?=baseclass()

print(counter)
print=nil
print(counter)

运行上述程序时,我们得到以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/swift/swift-deinitialization.html

来源:LearnFk无涯教程网

1
0

当print=nil语句被省略时,计数器的值保持不变,因为它没有被初始化。

无涯教程网

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

class baseclass {
   init() {
      counter++;
   }
   deinit {
      counter--;
   }
}
var print: baseclass?=baseclass()
print(counter)
print(counter)

运行上述程序时,我们得到以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/swift/swift-deinitialization.html

来源:LearnFk无涯教程网

1
1

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

推荐系统三十六式 -〔刑无刀〕

数据结构与算法之美 -〔王争〕

Python核心技术与实战 -〔景霄〕

职场求生攻略 -〔臧萌〕

Flink核心技术与实战 -〔张利兵〕

深入C语言和程序运行原理 -〔于航〕

朱涛 · Kotlin编程第一课 -〔朱涛〕

结构写作力 -〔李忠秋〕

云时代的JVM原理与实战 -〔康杨〕

好记忆不如烂笔头。留下您的足迹吧 :)