ARC (Automatic Reference Counting)
https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html
- class Person {
- let name: String
- init(name: String) { self.name = name }
- var apartment: Apartment?
- deinit { print("\(name) is being deinitialized") }
- }
- class Apartment {
- let unit: String
- init(unit: String) { self.unit = unit }
- var tenant: Person?
- deinit { print("Apartment \(unit) is being deinitialized") }
- }

Weak References
Property observers aren’t called when ARC sets a weak reference to.
nil.- class Person {
- let name: String
- init(name: String) { self.name = name }
- var apartment: Apartment?
- deinit { print("\(name) is being deinitialized") }
- }
- class Apartment {
- let unit: String
- init(unit: String) { self.unit = unit }
- weak var tenant: Person?
- deinit { print("Apartment \(unit) is being deinitialized") }
- }

Unowned References
Use an unowned reference only when you are sure that the reference always refers to an instance that has not been deallocated.
If you try to access the value of an unowned reference after that instance has been deallocated, you’ll get a runtime error.
댓글
댓글 쓰기