ARC (Automatic Reference Counting)
Reference Type의 인스턴스 메모리를 자동으로 관리Reference Type 타입을 참조할 때 참조카운트가 증가하는 것을Strong 참조라고 함ARC 동작 방식
3️⃣ 메모리 해제
ARC 동작 시기
메모리 누수
강한순환참조(Strong Reference Cycle)Strong으로 참조하면 발생Strong 참조가 기본 값)weak, unowned 사용 (strong 대신)//Person과 Apartment가 서로 인스턴스를 참조하는 상황
class Person {
let name: String
init(name: String) { self.name = name }
weak var apartment: Apartment? //weak로 참조카운트 방지
deinit { print("\(name) is being deinitialized") }
}
class Apartment {
let unit: String
init(unit: String) { self.unit = unit }
weak var tenant: Person? //weak로 참조카운트 방지
deinit { print("Apartment \(unit) is being deinitialized") }
}
객체 참조 방법
Default 값