实例对象之间循环强引用
ARC并不是绝对安全的,当两个实例对象间相互强引用,就会造成引用循环,导致所占用的内存无法释放。
class Person{
var name : String
init(personName: String) {
name = personName
}
}
class Student: Person {
var classmate : Student?
override init(personName: String) {
super.init(personName: personName)
}
deinit {
//如果对象被正常释放会调用该方法
print("\(self.name)被正常释放")
}