与构造过程相反,实例最后释放的时候,需要清除一些资源,这个过程就是析构过程,在析构过程需要调用一种特殊的方法deinit,称为析构器,析构器deinit没有返回值,也没有参数,所以不能重载,析构函数只适用于类类型,不能应用于结构体和枚举
类似的方法在C++中称为析构函数,不同的是,C++中的析构函数通常用来释放不再需要的实例资源类型,而在swift中,内存管理采用自动引用计数(ARC),不需要在析构器释放不需要的实例资源,但是还是有一些清除工作需要做,如下实例:
class Rectangle{
var width:Double
var height:Double
init(width:Double,height:Double){
self.width=width
self.height=height
}
init(W width:Double,H height:Double){
self.width=width
self.height=height
}
init(length:Double){
self.width=length
self.height=length
}
init(){
width = 10.0
height = 20.0
}
deinit{
println("调用析构函数")
self.width = 0.0
self.height = 0.0
}
var rect1 = Rectangle(width:10.0,height:20.0)
rect1 = nil
var rect2 = Rectangle(W:30,H:20)
rect2 = nil
}本文出自 “平凡之路” 博客,请务必保留此出处http://linjohn.blog.51cto.com/1026193/1622783
原文:http://linjohn.blog.51cto.com/1026193/1622783