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>>>> 对象被销毁,持有资源被释放。 */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |