deinit叫反初始化器,类似OC中的dealloc方法,当
类
的实例对象被释放内存时,就会调用实例对象的deinit方法。deinit { print("Person对象销毁了") }
【例】
override func viewDidLoad() {
super.viewDidLoad()
print("1111")
test()
print("2222")
}
class Person {
deinit {
print("Person对象销毁了")
}
}
class Student: Person {
deinit {
print("Student对象销毁了")
}
}
func test() {
var student = Student()
}
输出结果如下:
1111
Student对象销毁了
Person对象销毁了
2222
注意:
- deinit不接受任何参数,不能写小括号,不能自行调用;
- 父类的deinit能被子类继承;
- 子类的deinit实现执行完毕后会调用父类的deinit;