Swift析构器
2016-03-03 17:54
309 查看
Swift中的析构器的作用类似C++中的析构器,用deinit关键字,在实例被销毁之前被自动调用的,主要作用是释放一些资源,比如你之前打开了一个数据库,并写入一些数据,在类实例被释放之前需要关闭该数据库。
[code] deinit{ //释放一些资源 }
注意:
析构器只能在类(class)中使用无需使用func关键字也没有括号( )
析构函数不能有返回值和参数
不能手动调用析构函数,有系统自动调用
先列举一个简单的例子,清晰的看一下流程功能:
[code] 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)") 打印结果: 男 子类实例即将释放---- 父类实例即将释放----
通过上面的结果可以得出结论:
[code]* 子类实例释放之前自动调用子类的析构器,最后再自动调用父类的析构器 * 调用析构器是在释放实例销毁之前,所以可以在析构器里面是可以调用实力存储属性的 * 即使子类没有析构器但仍然会调用父类的析构器(前提是父类析构器存在)
相关文章推荐
- 枚举_Swift基础知识学习
- Swift中的get和set方法
- Swift 基础学习(函数)
- 大熊的swift学习笔记(三)
- iOS开发-swift基础学习三
- iOS开发-swift基础学习二
- Swift Release模式下屏蔽NSLog()
- 基于swift语言iOS8的蓝牙连接(初步)(转帖)
- swift 创建tableView 并实现协议
- Swift 基础学习(判断语句)
- Swift 基础学习(字典)
- swift资料收集
- swift: Swift中static和class的使用
- swift 快速奔跑的兔几 本节的内容是:iOS上基于文档的应用程序
- Swift2.0(17)泛型技术
- Swift2.0(17)内存管理ARC
- Swift2.0(16)分类与协议
- Swift2.0(15)类型的补充
- Swift2.0(14)引用类型与数值类型
- Swift2.0(13)构造方法