Тот же код внутри тестового проекта MacOS работает как положено (оба выполняются deinit) в Xcode 9.4.1, а также в Xcode 10.0 (10A255)
чал концепцию управления памятью и нашелdeinit
метод не вызывается вXcode 10 beta 6 детская площадка, Первоначально я думал, что могут быть некоторые проблемы в коде. Затем я тестирую один и тот же код на детской площадке Xcode 9.4.1 и в образце приложения Xcode 10 beta 6, все работает как положено (вызывается метод deinit). Это ошибка вXcode 10 beta 6 детская площадка или что-нибудь еще? Я использую код разработчика 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
}