个性化阅读
专注于IT技术分析

Swift反初始化介绍和用法

Swift Deinitialization是一个过程, 在该过程中, 调用” deinitializer”可在释放类实例之前释放内存空间。 ‘deinit’关键字用于取消分配系统资源占用的内存空间。反初始化仅适用于类类型。

反初始化的工作方式

Swift会自动释放不再需要的实例, 以释放资源。 Swift使用自动引用计数(ARC)来处理实例的内存管理。通常, 在实例被释放后, 你无需执行手动清理。但是, 当你使用自己的资源时, 需要执行一些其他的清理操作。

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

句法:

deinit {
// perform the deinitialization
}

Swift初始化实例

var counter = 0; // for reference counting
class baseclass {
   init() {
      counter++;
   }
   deinit {
      counter--;
   }
}
var print: baseclass? = baseclass()

print(counter)
print = nil
print(counter)

输出

1
0

在此, 由于未初始化计数器的print = nil语句值, 因此保持不变。

var counter = 0; // for reference counting
class baseclass {
   init() {
      counter++;
   }
   deinit {
      counter--;
   }
}
var print: baseclass? = baseclass()
print(counter)
print(counter)

输出

1
1

赞(0)
未经允许不得转载:srcmini » Swift反初始化介绍和用法

评论 抢沙发

评论前必须登录!