Swift基础篇——析构方法

Swift基础篇——析构方法,第1张

概述析构方法 import Foundation/* 析构方法 对象的内存被回收前夕被隐式调用的方法, 对应OC的dealloc方法 主要执行一些额外 *** 作, 例如释放一些持有资源, 关闭文件, 断开网络等 */class FileHandler{ var fd: Int32? // 文件描述符 // 指定构造器 init(path:String){ // 析构方法
import Foundation/* 析构方法 对象的内存被回收前夕被隐式调用的方法,对应OC的dealloc方法 主要执行一些额外 *** 作,例如释放一些持有资源,关闭文件,断开网络等 */class fileHandler{    var fd: Int32? // 文件描述符    // 指定构造器    init(path:String){        // 需要打开的文件路径,打开方式(只读)        // open方法是UNIX的方法        let ret = open(path,O_RDONLY)        if ret == -1{            fd = nil        }else{            fd = ret        }        print("对象被创建")    }    // 析构方法    deinit{        // 关闭文件        if let ofd = fd{             close(ofd)        }        print("对象被销毁")    }}var fh:fileHandler? = fileHandler(path: "/Users/Jonathan_Lee/Desktop/老员工奖.xlsx")// 当对象没有任何强引用时会被销毁fh = nil/* 析构方法的自动继承 父类的析构方法会被自动调用,不需要子类管理 */class Person {    var name:String    init(name:String){        self.name = name        print("Person init")    }    deinit{        print("Person deinit")    }}class SuperMan: Person {    var age:Int    init(age:Int){        .age = age        super.init(name: "Swift")        print("SuperMan init")    }    deinit{        // 如果父类的析构方法不会被自动调用,那么我们还需要关心父类        // 但是如果这样做对子类是比较痛苦的        print("SuperMan deinit")    }}var sm: SuperMan? = SuperMan(age: 30)sm = nil
总结

以上是内存溢出为你收集整理的Swift基础篇——析构方法全部内容,希望文章能够帮你解决Swift基础篇——析构方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1083536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存