加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

14.1 Swift析构方法

发布时间:2020-12-14 06:31:12 所属栏目:百科 来源:网络整理
导读:/** Swift 内存管理 和 Objective-C 一样都是基于 ARC 的内存管理。 ( 1 )析构方法 对象的内存被回收前夕被隐式的调用的方法。主要执行一些额外的操作。 比如:关闭文件、断开网络、释放对象持有的一些资源等。 在 Objective-C 中就是 dealloc 方法 在 Swi

/**

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>>>>

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

*/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读