您的位置:首页 > 移动开发 > Swift

swift学习记录(析构器)

2015-12-23 13:45 204 查看
析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字deinit 来标示。在类中,每个类只能有一个析构器。

基本语法

deinit{
//执行析构过程
}


析构过程原理

swift 通过自动引用计数(ARC)来管理内存,会自动释放不在需要的类来释放资源。通常实例被释放时不需要手动去释放资源。但当使用自己的资源时

需要进行一些额外的清理。例如,如果创建了一个自定义的类来打开一个文件,并写入一些数据,可能需要在类实例被释放之前手动去关闭该文件。

class Person{

var name : String
var age : Int

init(name :String,age:Int){
self.name = name
self.age = age
}

deinit{
print("调用了析构器,释放内存")
self.name = ""
self.age = 0
}
}

var person:Person? = Person(name: "张三",age: 20)
person = nil
//调用了析构器,释放内存


实例被赋值为 nil ,表示需要释放内存,析构器在释放内存之前调用,然后在释放内存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: