Скажем, у меня есть два класса: базовый класс и подкласс вроде этого:
class Base{
var name: String?
init() {
name = "The base class"
}
deinit {
println("call Deinitialization in base class")
name = nil
}
}
class Sub: Base{
var subName: String?
init() {
super.init()
subName = "The sub class"
}
deinit {
println("call Deinitialization in sub class")
subName = nil
// does it really call super.deinit() ?
// or assign name = nil ?
}
}
Когда вызывается деинициализатор подкласса, вызывает ли он super.deinit()
для назначения переменной name
значение nil? Или мне нужно назначить вручную в деинициализаторе подкласса?