O método Deinit não é chamado no playground Xcode 10 Beta 6
Eu estava explorando o conceito de gerenciamento de memória e encontreideinit
método não está chamandoXcode 10 beta 6 playground. Inicialmente, pensei que poderia haver algum problema no código. Depois, testo o mesmo código no Xcode 9.4.1 playground e no aplicativo de exemplo do Xcode 10 beta 6. Tudo está funcionando conforme o esperado (o método deinit é chamado). É bug emXcode 10 beta 6 playground ou qualquer outra coisa? Estou usando o código do desenvolvedor da apple
class Person {
let name: String
weak var apartment: Apartment?
init(name: String) {
self.name = name
print("\(name) is being initialized")
}
deinit { print("\(name) is being deinitialized") }
}
class Apartment {
let unit: String
weak var tenant: Person?
init(unit: String) { self.unit = unit
print("Apartment \(unit) is being initialized")
}
deinit { print("Apartment \(unit) is being deinitialized") }
}
do {
var john: Person?
var unit4A: Apartment?
john = Person(name: "John Appleseed")
unit4A = Apartment(unit: "4A")
john!.apartment = unit4A
unit4A!.tenant = john
john = nil
unit4A = nil
}