与构造过程相反,实例最后释放的时候,需要清除一些资源,这个过程就是析构过程,在析构过程需要调用一种特殊的方法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
}