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)") 打印结果: 男 子类实例即将释放---- 父类实例即将释放----通过上面的结果可以得出结论:
* 子类实例释放之前自动调用子类的析构器,最后再自动调用父类的析构器* 调用析构器是在释放实例销毁之前,所以可以在析构器里面是可以调用实力存储属性的* 即使子类没有析构器但仍然会调用父类的析构器(前提是父类析构器存在)总结
以上是内存溢出为你收集整理的Swift析构器全部内容,希望文章能够帮你解决Swift析构器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)