[swift] weak 참조 사용 예시

class Person { let name: String var apartment: Apartment?

init(name: String) {
    self.name = name
}

deinit {
    print("\(name)가 메모리에서 해제됨")
} }

class Apartment { let unit: String weak var tenant: Person?

init(unit: String) {
    self.unit = unit
}

deinit {
    print("아파트 \(unit)가 메모리에서 해제됨")
} }

var john: Person? var unit4A: Apartment?

john = Person(name: “John Doe”) unit4A = Apartment(unit: “4A”)

john!.apartment = unit4A unit4A!.tenant = john

john = nil unit4A = nil ```