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