本文共 933 字,大约阅读时间需要 3 分钟。
deinit{ //释放一些资源 }
析构器只能在类(class)中使用
无需使用func关键字也没有括号( )
析构函数不能有返回值和参数
不能手动调用析构函数,有系统自动调用
class Father { var age:Int var height:Int init(age:Int,height:Int) { self.age=age self.height=age } deinit { print("父类实例即将释放----") print("父亲的年龄为:\(age)") } } class Child:Father{ var sex:String init(age:Int,height:Int,sex:String) { self.sex=sex super.init(age: age, height: age) } deinit { print("子类实例即将释放----") print("孩子的性别为:\(sex)") } } 调用: var child:Child?=Child(age: 45, height: 175, sex: "男") print("\(child!.sex)") 打印结果: 男 子类实例即将释放---- 父类实例即将释放----
* 子类实例释放之前自动调用子类的析构器,最后再自动调用父类的析构器* 调用析构器是在释放实例销毁之前,所以可以在析构器里面是可以调用实力存储属性的* 即使子类没有析构器但仍然会调用父类的析构器(前提是父类析构器存在)
转载地址:http://ztcfl.baihongyu.com/