/**
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>>>>
对象被销毁,持有资源被释放。
*/
总结以上是内存溢出为你收集整理的14.1 Swift析构方法全部内容,希望文章能够帮你解决14.1 Swift析构方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)