14.1 Swift析构方法

/**

Swift 内存管理

Objective-C 一样都是基于ARC的内存管理。

1)析构方法

对象的内存被回收前夕被隐式的调用方法。主要执行一些额外的操作。

比如:关闭文件、断开网络、释放对象持有的一些资源等。

Objective-C中就是 dealloc方法

Swift的析构方法中,不用去管理内存。

*/

class FileHandler {

var fd: Int32? // 文件描述符

init(path: String) {

// 打开文件,只读方式

var ret = open(path,O_RDONLY)

if ret == -1 {

fd = nil

} else {

fd = ret

}

}

deinit {

// 如果没有关闭这个文件,那么资源被浪费了

if let ofd = fd {

close(ofd)

}

print("对象被销毁,持有资源被释放。")

}

}

print("----------->>>>")

/**

对象(引用类型)何时被销毁,对象没有任何引用的时候。

*/

var ofh: FileHandler? = FileHandler.init(path: "etc/passwd")

print("-----------da>>>>")


// 目前没有被任何的引用指向刚刚构造的对象。

// ofh = nil

/**

打印

----------->>>>

-----------da>>>>

对象被销毁,持有资源被释放。

*/

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...